小编phy*_*man的帖子

“set -eo pipefail”在适用于 Linux 的 Windows 子系统(Ubuntu 16.04)中不起作用

我已经在应该模拟 Ubuntu 16.04 的 Windows 10 机器上安装了适用于 Linux 的 Windows 子系统。当我尝试执行在脚本顶部具有以下 2 行的脚本时,它给了我错误:invalid option name set: pipefail

脚本行:

#!/bin/bash
set -eo pipefail
Run Code Online (Sandbox Code Playgroud)

这个脚本在我的 Mac 和我拥有的 CentOS 系统上运行良好。我已经检查(并验证)了我的 Ubuntu shell,以确保它通过运行set -o.

的输出cat -net /path/to/myscript是:

#!/bin/bash^M$
set -eo pipefail^M$
Run Code Online (Sandbox Code Playgroud)

这个问题被标记为“How to change Windows line-ending to Unix version”的重复,但我不认为它是重复的,因为我个人不知道我遇到的问题(在我的问题中概述)是由我的 shell 脚本中的行尾类型引起的。每个问题的答案都是相同的,但提出了 2 个不同的问题。

bash windows-10 16.04 windows-subsystem-for-linux

7
推荐指数
1
解决办法
6594
查看次数