标签: shebang

#!/bin/sh 和 #!/bin/bash 有什么区别?

如果我写,

#!/bin/bash
echo "foo"
Run Code Online (Sandbox Code Playgroud)

或者

#!/bin/sh
echo "foo"
Run Code Online (Sandbox Code Playgroud)

两者产量相同。我见过一些以#!/bin/sh或开头的脚本#!/bin/bash。它们之间有什么区别吗?

bash scripts sh shebang

359
推荐指数
4
解决办法
71万
查看次数

是否有根据其shebang行运行脚本的命令?

如果我想执行一个没有设置执行权限的 bash 脚本,我可以这样做:

bash script.sh
Run Code Online (Sandbox Code Playgroud)

bash如果脚本不可执行并且我不知道正确的解释器,我应该使用什么来代替?是否有一个命令可以从 shebang 行查找解释器并用它执行脚本?

command-line scripts executable shebang

47
推荐指数
3
解决办法
5566
查看次数

shebang中哪种类型的路径更可取?

在脚本中,第一行应该指定解释器的路径。
但是在 Linux、Unix 或 BSD 的不同服务器上,此路径可能不同。

什么更可取?

#!/usr/bin/env bash 
Run Code Online (Sandbox Code Playgroud)

或者

#!/bin/bash 
Run Code Online (Sandbox Code Playgroud)

scripts shebang

22
推荐指数
2
解决办法
6355
查看次数

如何让python shebang使用python3?

我有一个使用 shebang 的第三方脚本#!/usr/bin/env python

根据 python 文档,这是适用于 Python v2 和 Python v3 ( https://docs.python.org/3/using/windows.html#shebang-lines ) 的脚本的正确形式。

我的 Ubuntu (WSL) 只安装了 Python 3:

~? which python
~? which python3
/usr/bin/python3
Run Code Online (Sandbox Code Playgroud)

我已将此添加到路径中,方法是在我的内容中添加以下内容~/.bashrc并获取它

~? which python
~? which python3
/usr/bin/python3
Run Code Online (Sandbox Code Playgroud)
~? . ~/.bashrc
~? env | grep PATH
PATH=/home/me/.local/bin:/home/me/bin:/usr/bin/python3:/opt/gradle/gradle-5.3.1/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
Run Code Online (Sandbox Code Playgroud)

然而,当我运行这个脚本时,它抱怨找不到 Python。我创建了一个简短的测试文件foo,其中包含相同的 shebang 和一个print("Hello")

~? ./foo
/usr/bin/env: ‘python’: No such file or directory
Run Code Online (Sandbox Code Playgroud)

我还能做些什么来env使用python3?

PS:我没有python 2,也不想安装它。第三方脚本的自述文件特别提到支持 Python v2 和 v3,并且根据 Python 文档本身,shebang 指出了这一点,如上所述。

PPS:添加别名并不能解决这个问题,因为它们仅在用户在提示符下调用 …

bash bashrc python3 shebang

11
推荐指数
2
解决办法
2万
查看次数

许多文件顶部的这一行是什么?

我已经看到许多文件将这一行作为其中的第一行。这究竟是什么?

#!/usr/bin/env python
Run Code Online (Sandbox Code Playgroud)

这是什么意思?为什么有必要?

scripts shebang

3
推荐指数
1
解决办法
492
查看次数

标签 统计

shebang ×5

scripts ×4

bash ×2

bashrc ×1

command-line ×1

executable ×1

python3 ×1

sh ×1