我在一个很棒的 shell 脚本的末尾看到了这一点,但我无法理解这里的逻辑,因为我认为它缺少更长的命令。
spark ${@:-`cat`}
这出现在末尾这个脚本。有任何想法吗?
+ 标记将其扩展为完整代码段的人,即使其速度较慢(更好地解释)
答案1
这是参数替换的第一个特殊情况man bash
:
${parameter:-word}
使用默认值。如果未设置或为 null,则替换parameter
的扩展。否则,将替换word
的值 。parameter
在您提到的情况下,要么用户在命令行上提供了参数并且将使用它们,要么要求用户随后在标准输入上输入它们。
答案2
Afaik:-
基本上是:使用$@
OR `cat`
(不设置$@
为`cat`
)...
所以一些变量替换的东西......
编辑:所以它为您提供了某种交互式输入......
这是一个终端测试:
localhost:~ _druu$ echo ${@:-`cat`}
hello
world
;)
^\hello world ;)
localhost:~ _druu$