0

説明できない行動に出くわしました。シバンなしで bash スクリプトを実行すると、ps コマンドはスクリプトとその引数を bash に渡された引数として表示せず、/proc/$$/cmdline も表示しませんが、シバンを使用してスクリプトを実行すると、動作は次のようになります。期待される。

シバンの例:

# cat mytest
#!/bin/bash
echo my name is $1
cat /proc/$$/cmdline
echo
ps -p $$ -o args=

# ./mytest John
my name is John
/bin/bash./mytestJohn
/bin/bash ./mytest John

シバンなしの例:

# cat mytest
echo my name is $1
cat /proc/$$/cmdline
echo
ps -p $$ -o args=

# ./mytest John
my name is John
-bash
-bash

どちらの場合も、スクリプトは「私の名前はジョンです」と表示しますが、シバンがないと、引数なしで bash プロセスが表示されます。これはどのように可能ですか?

4

0 に答える 0