命令结果为for循环shell脚本中的变量

时间:2011-11-21 15:10:20

标签: shell variables loops for-loop

如何:对变量执行命令结果?

for file in find "$1" do
    var = $file | cut -d/ -f6-
    echo $var
    ...
done

2 个答案:

答案 0 :(得分:1)

一些指示:

在shell脚本中,空白真的很重要。您的代码var = $file是错误的,因为不存在知道如何处理参数var=的可执行文件$file。使用

var="$file"

相反。

要捕获$file | cut -d/ -f6-管道的输出,您需要以下语法:

var="$(echo $file | cut -d/ -f6-)"

在最近版本的bash中,您可以使用“here string”代替,并避免花费echo和管道费用。

var="$(cut -d/ -f6- <<<"$file")"

我注意到您还尝试处理find命令的结果,但语法也不正确。正确的语法是

while IFS= read -d $'\0' -r file ; do
    var="$(cut -d/ -f6- <<<"$file")"
    echo "$var"
done < <(find "$1")

我必须再次质疑你“字段6”正在做什么,因为你问过类似的问题before

答案 1 :(得分:0)

你的问题并不是那么清楚,但是

var=`cut -d/ -f6- < $file`

你在追求什么?