- ベストアンサー
$0の変数について
$0の変数には、パスを含んだ形式でプロセス名が編集されると思うのですが、この変数からパスをはずした形式でユーザ変数にセットする簡単な方法はありませんか? たとえば$0に、/tmp/a.sh と設定されている場合に 変数 $shlに a.sh を設定したいのですが。 宜しくお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
basename コマンドで、お望みのことができます。 お使いのシェルが sh なら shl=`basename $0` で、csh なら set shl=`basename $0` で、 $shl に $0 からパス名を除いたものがセットされます。 以下は、csh によるサンプルプログラムです。 % cat /tmp/a.sh #!/bin/csh -f set shl=`basename $0` echo $0 echo $shl 実行結果は、 /tmp/a.sh a.sh となります。
その他の回答 (1)
- kayu24
- ベストアンサー率0% (0/2)
回答No.2
cshだけでしかできないのかもしれませんが・・・ set shll=$0:t で、パスは取り除かれます。 ちなみに、パスが取り除かれたa.shからさらに拡張子(というか末尾の"."とそれ以降の文字列)を取り除きたい場合は set shll2=$shll:r で行けます。
質問者
お礼
回答ありがとうございます。 確認してみます。
お礼
回答頂きありがとうございます。 早速確認させていただきます。