コマンドやスクリプトがうまく実行され、自分が構想したとおりに動いてくれたときは、気分爽快、気持ちがスカッとします。
この達成感が、たまんない。
私は、コンピューターゲームはしないのですが、ゲーム進行がうまくいって、次のステージに上がることができたときの達成感が、おそらく、こういう気分でしょう。
コマンドやスクリプトは、ユーザーが命じたとおりに動作し、融通は一切ききません。たった1文字のスペルミスであっても許してくれません。即座にエラーが出て、怒られます。
このようにスペルミスがあれば、エラーを出して怒ってくれるのが原則です。
けど、怒ってくれればいいのに、そうならない場面があります。
それは、「変数」です。
$ files=`find . -type f -name "*.sh"` ; echo ${files}
というコマンドを打ち込みました。
このコマンド実行の結果、「.sh」の拡張子のファイルを見つけ出して、表示してくれます。
ところが、ここで変数を記述するとき、スペルミスを犯してしまいました。
「${files}」 とすべきところを、
「${file}」 と誤記してしまいました。
語尾に「s」を付け忘れ、変数「files」を、「file」とスペルミスしています。
このとき、「fileという変数はないぞ。」と、エラーを出して怒ってくれればいいのに、そうはなりません。
どうなるかというと、シレーっと、空白行が出力されます。
変数「file」には値が何も代入されていないという解釈がされて、エラーを出すことなく、「空文字列」を出力するからです。
WordマクロやExcelマクロのVBAでは、変数宣言の強制を設定しておくと、「fileという変数は定義されていません」っていうエラーを出してくれます。
この仕様に慣れていたので、最初は戸惑いました。
が、これは、Bashシェルの仕様なのです。
受け入れるしかありません。そのうち、これに慣れてくるでしょう。
それでは、また次の記事で
■■■■ goosyun ■■■■
《2024年5月12日追記》
Linuxシェルでの「変数の扱い方」全般を記事にまとめました。
⇒ こちらの記事をご覧ください。
最近の「Ubuntu」カテゴリーもっと見る
最近の記事
カテゴリー
バックナンバー
人気記事