BASH - 用于测试文件是否存在以及对文件执行某些操作的快捷方式

时间:2016-01-13 09:26:48

标签: bash

通常,我发现自己在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

但我想知道是否有某种内置变量可以让我失望 手动申报?

1 个答案:

答案 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