9 [username@notebook ~]$ cat foo.sh #!/bin/bash echo "$0" [username@notebook ~]$ ./foo.sh ./foo.sh [username@notebook ~]$ 質問:「foo.sh」を出力するにはどうすればよいですか?どのように実行されたとしても。 bash shell-script — ひどい質問 ソース
22 使用basename: #!/bin/bash basename -- "$0" 変数に割り当てたい場合は、次のようにします。 my_name=$(basename -- "$0") — cjm ソース 6 スクリプト名がダッシュ-で始まる場合、これは失敗しますbasename -- "$0"。必要です。シェルパラメーター展開を使用してそれを回避し、外部コマンドを強制的に起動しないでください。 — cuonglm 2015 3 @cuonglm、スクリプト名がダッシュで始まる可能性は低いですが、有効な点です。 — cjm 2015
12 POSIXly、必要なのはパラメータ拡張のみです。 #!/bin/bash printf '%s\n' "${0##*/}" — Cuonglm ソース 1 追加のプロセス実行がない場合は+1。 — トム・ヘイル
-
で始まる場合、これは失敗しますbasename -- "$0"
。必要です。シェルパラメーター展開を使用してそれを回避し、外部コマンドを強制的に起動しないでください。