/bin/bashvar='value'# = の周りにスペースを入れてはいけませんecho$var# 後述しますが $ は変数を参照する時につける記号ですvar='change'# 定義済みの変数の値を変更することも可能ですecho$var terminal $./test.shvalue change 変数への代入時に=の前後にスペースを入れてはいけない理由...
引数を複数指定したい場合は、一つ目の引数に対応した置換変数名を「&1」、二つ目の引数に対応した置換変数名を「&2」・・・と引数の数に応じて「&」の後を連番で続けます。 スクリプト中の置換変数の数より引数の数が少ない場合は、下記例のように手動入力のプロンプトが表示されます。
replace_all(){# -v は標準出力に出力する代わりに変数に代入するオプションprintf-v"$1""%s""${2//"$3"/"$4"}"# bash、zsh、ksh93u+m で使える# eval "$1=\${2//\"\$3\"/\"\$4\"}" # ksh93u+ の場合はこちら}v=foobarbaz replace_all ret"$v""a""A"echo"$ret"# =>...
特殊な目的のパラメータ(GPP_SA ~ GPP_SD)は、key オプションの引数として使用される場合のみ、マクロ変数 $SA ~$SD にマクロ展開されます。 次の例を参照してください。 [--key $SC] [--key “$SD”] オープン形式のプロファイ...
カッコで囲まれたオプションの引数はマクロ展開されています。 特殊な目的のパラメータ(GPP_SA ~ GPP_SD)は、key オプションの引数として使用される場合のみ、マクロ変数 $SA ~$SD にマクロ展開されます。 次の例を参照してください。
また環境変数PATHに値を代入するとハッシュテーブルはクリアされます(hash -r相当)これらの処理を手動で行うのがhashコマンドです。本来はハッシュテーブルの操作用のコマンドなので用途通りの使い方ではありませんし、mksh と ksh ではコマンドが見つからない場合でもエラーにならないので...
一行に関連するデータ (name, price, count) が詰め込まれるわけではないため、どうしても変数に保持してから処理するというコードが必要になってきます。数が多くなれば面倒です。とは言え最初のコードに比べればかなりマシです。
はじめに一部の POSIX シェルには、シェル自体に正規表現対応の機能が含まれており、外部コマンドに依存せずに正規表現による比較を行えます。すべての POSIX シェルで使えるわけではありませんが…
文字列が連続する場合に確実に展開させるには$の後に中括弧で変数名を書く。 例1:)$HOGEFUGA(これだとなのかHOGE+′FUGA′なのかHOGEFUGAなのか区別が付かない 例2:)${HOGE}FUGA 引数の処理 (Arguments) 1番目の引数を$PROFILEに代入。指定されていなければdefaultを代入。