如何:对变量执行命令结果?
for file in find "$1" do
var = $file | cut -d/ -f6-
echo $var
...
done
答案 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`
你在追求什么?