通常,我发现自己在BASH脚本中编写以下内容,
if [ -f /very/long/path/tofile/name ]; then
do_someting /very/long/path/tofile/name
fi
例如:
if [ -f /usr/local/bin/virtualenvwrapper.sh ]; then
source /usr/local/bin/virtualenvwrapper.sh
fi
明确的方法是:
WRAPPER=/usr/local/bin/virtualenvwrapper.sh
if [ -f ${WRAPPER} ]; then
source ${WRAPPER}
fi
但我想知道是否有某种内置变量可以让我失望 手动申报?
答案 0 :(得分:3)
你可以用&&操作者:
test -f file && cat file
&&&仅在第一个命令成功运行时才会运行。
请参阅:Run command2 only if command1 succeeded in cmd windows shell
如果你只想定义一个函数并运行它就可以写/ very / long / path / tofile / name。
function run_smart {
if [ -f "$2" ]; then
"$1" "$2"
fi
}
run_smart cat /very/long/path/tofile/name