【问题标题】:Linux/Ubuntu set: Illegal option -o pipefailLinux/Ubuntu 设置:非法选项 -o pipefail
【发布时间】:2019-06-01 00:08:28
【问题描述】:

下面提到的代码行曾经在 Ubuntu 16.04 发行版上一直为我工作,但突然 option-name pipefail 是一个非法选项:

set -eu -o pipefail

返回:

设置:非法选项-o pipefail

为什么会这样?我在一个全新安装的系统上运行该命令,并作为 shell 脚本的一部分。代码放在开头:

myscript.sh:

1 #!/bin/bash
2 set -eu -o pipefail
3 ...

脚本以 sudo 运行:

sudo sh ./myscript.sh

【问题讨论】:

标签: linux shell ubuntu set ubuntu-16.04


【解决方案1】:

你正在运行bin/sh,在Ubuntu上它是一个指向/bin/dash的符号链接,但pipefail是一个bashism。

使脚本可执行:

chmod +x myscript.sh

然后运行脚本如下:

sudo ./myscript.sh

【讨论】:

    【解决方案2】:

    zsh 运行脚本时我遇到了同样的错误,并且脚本以 incorrect shebang 开头。

    错误,在# 之后缺少!

    #/bin/bash
    rest-of-the-script
    

    正确:

    #!/bin/bash
    rest-of-the-script
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-13
      • 2016-02-28
      • 1970-01-01
      • 1970-01-01
      • 2016-03-07
      • 2011-04-09
      相关资源
      最近更新 更多