2つの異なるオペレーティングシステムにまたがるシェルスクリプトとプロセステーブルに関する一般的な質問があります。異なるLinuxディストリビューションでのシェルスクリプトの動作
SuSE Linuxシステムでは、joe.shというスクリプトを実行します。それは私がps -ef | grep [j]oe.sh -
を行う場合
echo "Hello Joe "
read x
次ん、それはこの
joe 15532 24267 0 09:40 pts/2 00:00:00 /bin/sh ./joe.sh
のようになります。結果を見つけること簡単なスクリプトです
これは私が別の端末を起動し、eを打つことはないと仮定していますスクリプトに入ります
しかし、私はOracleのLinuxシステム上でこれと同じことを行う場合、私はスクリプトに
#!/bin/bash
echo "Hello Joe"
read x
をシェバングを追加するまで、私は試合を取得しない設定になるだろうSuSEの中の環境でいくつかのデフォルトがあります?私はその動作をOracle Linuxシステムで再現したいと思います。
あなたが一致を取得していないとはどういう意味ですか?スクリプトはすぐに実行され終了しますか?それは正しく実行されませんか?何らかの理由で、あなたは 'sh'で実行しています(' ps'出力行に見られるように)。とにかくいつもいつもハッシュバーン( '#!')に入れたいと思っています。 –
ps -ef | grep [j] oe.shは(oracle上で)結果を返しません。スクリプトは、何かを入力するまでプロセステーブルにハングアップします。私はそのように設定したので、別のxtermウィンドウを開いて別の方法でプロセスを検索することができます。なぜなら、suseがデフォルトで/ bin/shを常に持っているのを誰かが知っていれば、私はちょっと不思議であったからです。 – Joe
oracleのデフォルトのシェルは何ですか?例えば '[stuff]'?)。バッシュはそうです。 oracleのデフォルトのシェルがそうでない場合は、あなたの答えがあります。 –