对于我的`./script`cat file``语法

时间:2015-01-20 14:11:08

标签: bash for-loop parameters cat seq

我有一个使用参数的脚本。在shell中我运行如下脚本:./script 1 2 3 4。我更喜欢在一行中使用包含1 2 3 4的文件并运行:./script `cat file`

我在这样的for循环中调用此脚本后:for i in `./script `cat file` `但它不起作用。什么是好的语法?

3 个答案:

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