いくつかの環境ファイルを使用する Unix シェル スクリプトがあります。環境ファイルには次の行があります:
. /export/applications/ibm6000/dte/sh/nyggmfiss.env
nyggmfiss.envファイルを開くと、変数が表示されます
${__DTEENV}
他の環境ファイルも確認しましたが、そのうちの1つに次のような行がありました。
export __DTEENV=${0}
誰か $(0) が何なのか知っていますか? これは、1 つの環境ファイルをエクスポートするスクリプトから来ているのでしょうか、それとも「別の環境ファイルをエクスポートする」という環境ファイルの名前なのでしょうか?
答え1
男の強打:
$0 is set to the name of the file
答え2
${0}
#!/bin/yourshell
は、(シェバン行) を最初の行としてシェル プロセスを開始した外部シェル スクリプトです。
外部シェル スクリプトがない場合 (.
コマンド ラインでコマンドを入力したとき) は、${0}
シェルになります。
の概念は${0}
ソース化された「環境ファイル」には適用されないため、.
でコマンド (ソース コマンド) を実行しても変更されません。