linux - 跨不同 Linux 发行版的 Shell 脚本行为

标签 linux bash shebang

我有一个关于跨 2 个不同操作系统的 shell 脚本和进程表的一般性问题。

在 SuSE Linux 系统上,我运行一个名为 joe.sh 的脚本。这是一个执行以下操作的简单脚本


echo "Hello Joe "     
read x

如果我执行 ps -ef | grep [j]oe.sh - 它会找到一个看起来像这样的结果


joe      15532 24267  0 09:40 pts/2    00:00:00 /bin/sh ./joe.sh

假设我启动了另一个终端并且没有在脚本上按回车键。

但是,如果我在 oracle linux 系统上做同样的事情,在我向脚本添加一个 shebang 之前我找不到匹配项

#!/bin/bash
echo "Hello Joe"
read x

SuSE 环境中是否有一些默认设置?我想在 Oracle Linux 系统上复制该行为。

最佳答案

脚本应该总是有一个 shebang 行,除非它们是 sourced。 default shell in SuSE是巴什。添加 #!/bin/bash 到顶部。

关于linux - 跨不同 Linux 发行版的 Shell 脚本行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36797630/

相关文章:

linux - 我如何列出在 shell 脚本(或类似的东西)运行期间执行的所有进程

linux - 如何在 Linux 上安装 Visual Studio Code?

同时读取单个文件

regex - 在终端中选择带有前导 "_"(下划线)符号的文件夹(不是文件)

linux - sqlite3 和 bash,数据库设置

google-chrome - mailto:在 Ubuntu 中使用通知消息打开 google chrome

bash - 什么是首选 Bash shebang ("#!")?

Linux AWS 立即被 rm -rf/* 关闭

Bash,评估文本值并删除一行中的第一部分

python - 工具启动 Python 脚本中的 shebang 从何而来?