【发布时间】:2011-11-22 08:14:03
【问题描述】:
如何:将命令结果传递给变量?
for file in find "$1" do
var = $file | cut -d/ -f6-
echo $var
...
done
【问题讨论】:
-
对变量的命令结果? variable=command(其中 command 用 ` 包围)
标签: shell variables loops for-loop
如何:将命令结果传递给变量?
for file in find "$1" do
var = $file | cut -d/ -f6-
echo $var
...
done
【问题讨论】:
标签: shell variables loops for-loop
几点建议:
在 shell 脚本中,空格真的很重要。您的代码var = $file 是一个错误,因为不存在知道如何处理参数= 和$file 的可执行文件var。使用
var="$file"
相反。
要捕获$file | cut -d/ -f6- 管道的输出,您将需要以下语法:
var="$(echo $file | cut -d/ -f6-)"
在最新版本的bash 中,您可以使用“这里的字符串”来代替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。
【讨论】:
你的问题不是很清楚,但是
var=`cut -d/ -f6- < $file`
你追求的是什么?
【讨论】: