【问题标题】:Command result to a variabe in for loop shell script命令结果到 for 循环 shell 脚本中的变量
【发布时间】: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


【解决方案1】:

几点建议:

在 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

【讨论】:

    【解决方案2】:

    你的问题不是很清楚,但是

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

    你追求的是什么?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-06-28
      • 1970-01-01
      • 2018-01-07
      • 1970-01-01
      • 2022-01-26
      • 2015-08-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多