如何修剪没有基本名称的输出目录?

如何修剪没有基本名称的输出目录?

对于 shell 脚本,我需要按名称调用可执行文件,无论通向那里的路径如何;到目前为止,我知道这段代码报告了正确的名称:

tmpprog=`which program`
prog=${tmpprog%%*/}
if $prog=""
then
  echo >&2 "Main Program not found"
else
  echo >&2 "$prog"
fi

如何剪切代码,以便可以修剪路径以保留可执行文件名称并在一行中删除路径?

注意:basename不会这样做,因为我可能正在混合环境(windoze 上的 cygwin/busybox)上工作,有时路径有空格。

答案1

看起来您所需要做的就是检查是否program可用作命令,然后:

#! /bin/sh -
hash program || exit

# use program now:
program with its args

我在用着hash而不是command -v > /dev/nullashash会报告错误,如果program找不到保存必须自己做。任何状况之下,你不想使用which

相关内容