shell 跨不同 linux 发行版的脚本行为
shell script behavior across different linux distros
我有一个关于跨 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 行,除非它们是 source
d。 default shell in SuSE 是 Bash。将 #!/bin/bash
添加到顶部。
我想你要找的是:interpreter-script
无论如何,脚本应该始终有一个 shebang 行。 (我是约翰)
如您在状态行中所见,调用的默认 shell 是 sh
。
joe 15532 24267 0 09:40 pts/2 00:00:00 /bin/sh ./joe.sh
所以它正在执行sh
。
如上所示,默认情况下,SuSE 中的shell 应该是Bash。但是,这可以为每个用户进行不同的配置。任何用户(通常在基于 UNIX 的系统中)的默认值 shell 在 /etc/passwd
文件中定义。
该文件的每一行都是一个用户,字段由:
符号分隔。第7个字段是默认用户shell(用户登录时执行的shell)
可以在以下位置找到更详细的解释:http://www.cyberciti.biz/faq/understanding-etcpasswd-file-format/
我有一个关于跨 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 行,除非它们是 source
d。 default shell in SuSE 是 Bash。将 #!/bin/bash
添加到顶部。
我想你要找的是:interpreter-script
无论如何,脚本应该始终有一个 shebang 行。 (我是约翰)
如您在状态行中所见,调用的默认 shell 是 sh
。
joe 15532 24267 0 09:40 pts/2 00:00:00 /bin/sh ./joe.sh
所以它正在执行sh
。
如上所示,默认情况下,SuSE 中的shell 应该是Bash。但是,这可以为每个用户进行不同的配置。任何用户(通常在基于 UNIX 的系统中)的默认值 shell 在 /etc/passwd
文件中定义。
该文件的每一行都是一个用户,字段由:
符号分隔。第7个字段是默认用户shell(用户登录时执行的shell)
可以在以下位置找到更详细的解释:http://www.cyberciti.biz/faq/understanding-etcpasswd-file-format/