我试图得到一个不太复杂的,如果-如果-其他的工作,我的FreeBSD盒,但我得到了错误的第二部分的条件。
基本上,这就是我想要做的
if not file-exists or (file-exists and string exists in file) then
do this
else
do something else 这是我使用的实际代码
if [ ! -f /boot/loader.conf ] || [[ -f /boot/loader.conf ] && ! grep -Fqx "zfs_l
oad" /boot/loader.conf ]; then
echo "found"
else
echo "not found"
fi这给了我一个关于“[[]”的错误。我试着添加/去掉括号,但没有结果。
我也在网上搜索过类似的例子,但我看到的例子非常简单(也就是说,如果var=value那么做的话)
我可以把条件分成两个“如果”,但我认为它可以在1,我想知道“前进”,如果-如果-在伯恩以及其他。:)
任何帮助都将不胜感激。
谢谢:)
发布于 2014-05-02 23:35:43
使用{ ... }进行分组,而不使用子subshell的开销和副作用(如( ... )创建的)。[[ ]]是一种不同的语法,只适用于ksh衍生工具,例如bash,它用一个不太容易出错的选项代替[ ... ];它在基线POSIX shell中不可用。
[ ! -f /boot/loader.conf ] || \
{ [ -f /boot/loader.conf ] && ! grep -Fqx "zfs_load" /boot/loader.conf; }https://stackoverflow.com/questions/23438449
复制相似问题