我有一个使用参数的脚本。在shell中我运行如下脚本:./script 1 2 3 4
。我更喜欢在一行中使用包含1 2 3 4的文件并运行:./script `cat file`
。
我在这样的for循环中调用此脚本后:for i in `./script `cat file` `
但它不起作用。什么是好的语法?
答案 0 :(得分:4)
你不能像这样嵌套tilde(命令替换)。你可以做这个bash:
for i in $(./script $(<file))
$(<file)
是另一种获取$(cat file)
答案 1 :(得分:4)
使用$()
代替\
``进行命令替换。除其他外,这是更好的原因之一。
据说使用cat file
获取单词列表充其量只是一个糟糕的主意,最糟糕的是,它是一个破碎的(并且可能是危险的)。它不适用于任何需要空格或使用shell globbing字符的单词。
我建议不要首先这样做。
答案 2 :(得分:-1)
man seq
生成一系列数字。
#!/bin/bash
for i in $(seq 1 10)
do
echo $i
done