为什么在 ps 程序输出中看不到我的脚本?
Why can't I see my script on ps program output?
我有一个简单的脚本 (x.sh):
echo $$
sleep 60
当我 运行 这个和 "ps -ef | grep x.sh" 我什么也得不到。 运行 "ps -ef | grep " 我得到:
jsm_adm+ 7695 5700 0 12:25 pts/0 00:00:00 -bash
jsm_adm+ 7696 7695 0 12:25 pts/0 00:00:00 sleep 60
jsm_adm+ 7698 5841 0 12:25 pts/1 00:00:00 grep --color=auto 7695
如果我在第一行添加“#!/bin/bash”x.sh,那么我会得到:
jsm_adm+ 7693 5700 0 12:25 pts/0 00:00:00 /bin/bash ./x.sh
jsm_adm+ 7694 7693 0 12:25 pts/0 00:00:00 sleep 60
jsm_adm+ 7701 5841 0 12:25 pts/1 00:00:00 grep --color=auto 7693
如果用户没有将 hashbang 作为他们脚本的第一行,我有没有办法发现 "x.sh" 是 运行ning?另外,“-bash”在这种情况下是什么意思?
因为您在此 x.sh
文件中没有 bash
脚本。问题正是您描述的主题标签 #!/bin/bash
。如果您不将它放入您的文件中,bash
不会将您的文件解释为 bash 脚本。如果您想了解更多,可以导航至此 guide 并查看。
在你的情况下发生的情况是没有主题标签,这两个命令被解释为你直接在 shell 中输入它们,你可以在你看到程序时在第一个 ps
输出中观察到sleep(60)
.
我有一个简单的脚本 (x.sh):
echo $$
sleep 60
当我 运行 这个和 "ps -ef | grep x.sh" 我什么也得不到。 运行 "ps -ef | grep " 我得到:
jsm_adm+ 7695 5700 0 12:25 pts/0 00:00:00 -bash
jsm_adm+ 7696 7695 0 12:25 pts/0 00:00:00 sleep 60
jsm_adm+ 7698 5841 0 12:25 pts/1 00:00:00 grep --color=auto 7695
如果我在第一行添加“#!/bin/bash”x.sh,那么我会得到:
jsm_adm+ 7693 5700 0 12:25 pts/0 00:00:00 /bin/bash ./x.sh
jsm_adm+ 7694 7693 0 12:25 pts/0 00:00:00 sleep 60
jsm_adm+ 7701 5841 0 12:25 pts/1 00:00:00 grep --color=auto 7693
如果用户没有将 hashbang 作为他们脚本的第一行,我有没有办法发现 "x.sh" 是 运行ning?另外,“-bash”在这种情况下是什么意思?
因为您在此 x.sh
文件中没有 bash
脚本。问题正是您描述的主题标签 #!/bin/bash
。如果您不将它放入您的文件中,bash
不会将您的文件解释为 bash 脚本。如果您想了解更多,可以导航至此 guide 并查看。
在你的情况下发生的情况是没有主题标签,这两个命令被解释为你直接在 shell 中输入它们,你可以在你看到程序时在第一个 ps
输出中观察到sleep(60)
.