OKWAVEのAI「あい」が美容・健康の悩みに最適な回答をご提案!
-PR-
解決
済み

$0の変数について

  • すぐに回答を!
  • 質問No.150418
  • 閲覧数145
  • ありがとう数3
  • 気になる数0
  • 回答数2
  • コメント数0

お礼率 79% (163/205)

$0の変数には、パスを含んだ形式でプロセス名が編集されると思うのですが、この変数からパスをはずした形式でユーザ変数にセットする簡単な方法はありませんか?

たとえば$0に、/tmp/a.sh と設定されている場合に
変数 $shlに a.sh を設定したいのですが。

宜しくお願いします。
通報する
  • 回答数2
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

質問者が選んだベストアンサー

  • 回答No.1
レベル12

ベストアンサー率 40% (237/589)

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

となります。
お礼コメント
kiyoto

お礼率 79% (163/205)

回答頂きありがとうございます。
早速確認させていただきます。
投稿日時 - 2001-10-14 16:02:55
-PR-
-PR-

その他の回答 (全1件)

  • 回答No.2
レベル4

ベストアンサー率 0% (0/2)

cshだけでしかできないのかもしれませんが・・・ set shll=$0:t で、パスは取り除かれます。 ちなみに、パスが取り除かれたa.shからさらに拡張子(というか末尾の"."とそれ以降の文字列)を取り除きたい場合は set shll2=$shll:r で行けます。 ...続きを読む
cshだけでしかできないのかもしれませんが・・・

set shll=$0:t で、パスは取り除かれます。
ちなみに、パスが取り除かれたa.shからさらに拡張子(というか末尾の"."とそれ以降の文字列)を取り除きたい場合は
set shll2=$shll:r
で行けます。
お礼コメント
kiyoto

お礼率 79% (163/205)

回答ありがとうございます。
確認してみます。
投稿日時 - 2001-10-19 21:07:40
このQ&Aのテーマ
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
このQ&Aにこう思った!同じようなことあった!感想や体験を書こう
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ