【发布时间】:2019-06-16 20:15:22
【问题描述】:
我正在尝试从 Ubuntu WSL 运行脚本 script.sh。在 Ubuntu WSL 中,调用 sh script.sh 只会返回而无需执行任何操作。难道我做错了什么?在 WSL 中运行 Bash 脚本的正确方法是什么?
我可以从 Cygwin 运行脚本,所以我知道它是有效的。 EOL 设置为 Unix。我已将权限设置为 777。我尝试在 WSL 交互式 shell 中运行它,并作为来自 PowerShell 的命令:bash script.sh;两者都不起作用。我试过bash、sh、wsl、./。
脚本:
#!/bin/bash
echo "hello"
WSL 的结果:
~/test$ bash script.sh
~/test$
来自 Cygwin 的结果:
$ bash script.sh
hello
~/AppData/<path to ubuntu home>/test
$
【问题讨论】:
-
迟到但有人来访 - 还要注意脚本中的行尾是什么?它应该是 Linux 风格的
\n而不是\r\n -
不幸的是,我不再有那个 WSL 安装。我会记住行尾。我的原始脚本是用 Linux 编写的,但有可能我在 Windows 上的编辑器中打开它并破坏了它。
标签: bash windows-subsystem-for-linux