我正在尝试从 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
$
我无法复制这个问题。我已将此作为答案提交,以便包含代码:
henry@TV:~
498$ cat <<, >script.sh
#!/bin/bash
echo hello
,
henry@TV:~
499$ bash script.sh
hello
编辑: 请注意,如果您要直接使用 bash 调用此函数,则不需要
#!/bin/bash
shebang 和 .sh
扩展。仅当您要将其作为可执行文件调用时才需要 chmod
,在这种情况下需要 shebang。或 只需运行 cmd 和 wsl -e bash -ic "which node > Looper.scheduler.log"
由于某种原因,配置文件未加载..我添加了 .bash_profile 和源 ~/.bashrc 虽然在 /mnt/user 默认目录中,但不知道这是否重要