他の言語の場合、変数の値または関数からの戻り値を比較するというイメージですが、シェル言語の場合は「コマンドを実行する→実行したコマンドが正常終了したか異常終了したか→その結果で分岐する」という考え方の違いがあります。なのでifで変数の値を比較するということは実は少ないんですね。
done < /work/check.txt 実行結果 100 確認:200 300 確認:400 【stop】のやつが、値を拾ってしまっているやないかい!! なぜこういうことが起こったか・・・? そもそもreadコマンドって何だっけ・・・? readコマンド 標準入力からの入力をシェル変数に読み込むコマンド 書式:read...
はじめに一部の POSIX シェルには、シェル自体に正規表現対応の機能が含まれており、外部コマンドに依存せずに正規表現による比較を行えます。すべての POSIX シェルで使えるわけではありませんが…
ちなみに ls の結果を端末に出力した場合はファイル名が横並びに並んでいますが、ls | cat の出力は一行が一ファイルになっています。これは ls -1 を実行したときと同じ形式です。まれに ls の出力を別のコマンドにパイプで渡す時に -1 を付けている人がいますが実は不要です。もちろん書...
この処理は通常コマンド実行時に自動的に行われます。また環境変数PATHに値を代入するとハッシュテーブルはクリアされます(hash -r相当)これらの処理を手動で行うのがhashコマンドです。本来はハッシュテーブルの操作用のコマンドなので用途通りの使い方ではありませんし、mksh と ksh ではコ...
TL;DR@ の違いは複数の引数を一つに結合するかしないかの違いです。通常は複数の引数を一つに結合したりしないので "* や $@ …
はじめにシェルスクリプトで文字列を分割する時に気軽に IFS を使っている例をよく見かけるのですが文字列の分割として考えると直感的な動作とは言えないので注意が必要です。これは単語分割が他の言語でよ…
ということで、将来開発する予定の POSIX 準拠シェルスクリプト用のシェル関数ライブラリに収録するtrim関数と前ゼロ削除関数の実装(仮)でした。なおこのコード(というほどのものでもない)のライセンスは主張しない、またはCC0としますので、そのまま or 修正を加えて自由に使用していただい...