(2-2) 変数の参照 変数を参照するときは$変数名のように変数名の前に$をつけます。また、${変数名}のように{}で囲んでも参照できます。 test.sh #!/bin/bashvar1='value'echo$var1# $ で変数を参照var2=$var1# 代入先の変数には $ をつけませんecho${var2}# {} をつけても参照でき...
rm/tmp/dummyif[$?-eq0];thenecho"/tmp/dummy の削除に成功しました"fi 今は速度は気にする必要はありませんが、この方法だとelseでrmコマンドの終了ステータスが取れない([コマンドの実行結果に置き換わってしまう)ので、わざわざ変数に終了ステータスを代入しなければならなくなります。...
[N] を要素名に追加して、ページ タブに表示される番号を示します。 例:<Dial_Plan_1_> 要素は回線 1 の [ダイヤルプラン(Dial Plan)] を表します。 各開始要素タグには、対応する終了要素タグが必要です。 次に例を示します。 <fl...
二つのファイルのうち一つは改行が含まれていますが、ls コマンドの出力結果からはそれがわからず、foo, bar, baz の三つのファイルがあるように見えてしまいます。バイナリで出力しても区別は付きません。ここから(改行がファイル名に含まれる可能性がある場合は )ls コマンドの出力をパ...
TL;DR@ の違いは複数の引数を一つに結合するかしないかの違いです。通常は複数の引数を一つに結合したりしないので "* や $@ …
シェルスクリプトが設置してあるディレクトリ名を取得するには、dirnameを利用します。 スクリプト実行時のカレントディレクトリからシェルスクリプトが設置してあるディレクトリの相対パスのみを取得できます。 予約変数の$0には現在実行しているシェルスクリプトのファイル名フルパスが格納さ...
PATH環境変数からコマンドを探索する処理は時間ががかかるため、シェルはコマンド名とパスの対応をハッシュテーブルに格納します。この処理は通常コマンド実行時に自動的に行われます。また環境変数PATHに値を代入するとハッシュテーブルはクリアされます(hash -r相当)これらの処理を手動で行う...
replace_all(){# -v は標準出力に出力する代わりに変数に代入するオプションprintf-v"$1""%s""${2//"$3"/"$4"}"# bash、zsh、ksh93u+m で使える# eval "$1=\${2//\"\$3\"/\"\$4\"}" # ksh93u+ の場合はこちら}v=foobarbaz ...
これらのシェルでは遅いコマンド置換を使う必要はなく、末尾の改行が削除されるという問題もなく、変数に直接文字列を代入することが出来ます。この方法が他のシェルにも普及して POSIX で標準化されればよいのですが、現状一部のシェルでしか使うことが出来ません。(ほぼすべてのシェルで printf...
はじめに一部の POSIX シェルには、シェル自体に正規表現対応の機能が含まれており、外部コマンドに依存せずに正規表現による比較を行えます。すべての POSIX シェルで使えるわけではありませんが…