【问题标题】:read input from command return error script从命令返回错误脚本中读取输入
【发布时间】:2016-10-16 22:15:12
【问题描述】:

我有以下从命令读取数据的 shell 脚本。

while read _ host ip time _; do
    echo $host
done < <(traceroute yahoo.fr)

以上源码返回脚本错误

./traceroute_launch: line 33: syntax error near unexpected token `<'
./traceroute_launch: line 33: `done < <(traceroute yahoo.fr)'

我在 shell 上复制了上面的源代码,它可以工作。但是当我从脚本文件运行它时,我得到了上述错误。

我错过了什么

【问题讨论】:

    标签: linux bash shell sh


    【解决方案1】:

    进程替换 (&lt;()) 是 bash-ism,不是 POSIX 定义的。

    因此,当您尝试使用 sh(可能是 dash?)而不是 bash 在脚本中运行时,这会导致语法错误。

    您可以将脚本的 shebang 设置为#!/usr/bin/env bash 以使脚本由bash 解释,并使进程替换工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-03-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-04-25
      • 2013-02-10
      • 1970-01-01
      相关资源
      最近更新 更多