我有这个问题可以解决的问题https://superuser.com/a/508761
现在,我需要扩展它来做其他事情,但是首先,我需要在修改它之前更好地了解它的工作方式。这是有问题的脚本:
#!/bin/bash
(( $# != 2 )) && exit 1
for f in *; do
newf="${f//$1/$2}"
if [[ $f != $newf ]]; then
mv "$f" "$newf"
fi
done
怎么(( $# != 2 )) && exit 1
办?我很少能在网上找到解释:我发现了每个组件是什么,而不是整个行在整个脚本中的作用。答案没有解释那条线。海报的发布时间是两年前,而我不想破坏一个已有5年历史的问题,所以我在这里。
来自bash man:
控制运算符&&和|| 分别表示AND列表和OR列表。 AND列表的形式为一个 控制操作 是
command1 && command2
仅当command1返回退出状态为零时才执行command2。 [..cut ..] AND和OR列表的返回状态是列表中最后 执行的命令的退出状态。
执行控制功能的令牌。它是下列符号之一: || &&&; ;; ()|
因此,在这种情况下,请勿将其读&&
为布尔运算符。因此,现在您知道何时exit 1
执行-仅在上一个命令成功执行时(如果退出状态为零)。
看到这个serverfault asnswer用于解释&&
在猛砸3个不同的上下文。对于学习它们之间的区别很有用。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句