如何将命令结果传递给变量?将命令结果传递给循环外壳脚本中的变量
for file in find "$1" do
var = $file | cut -d/ -f6-
echo $var
...
done
如何将命令结果传递给变量?将命令结果传递给循环外壳脚本中的变量
for file in find "$1" do
var = $file | cut -d/ -f6-
echo $var
...
done
你的问题是不是所有的清楚,但
var=`cut -d/ -f6- < $file`
你是什么之后?
几个指针:
在shell脚本中空格真的很重要。您的代码var = $file
是错误的,因为不存在可执行文件var
,该文件知道如何处理参数=
和$file
。使用
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。
命令结果给一个变量? variable = command(其中命令被''包围) –