hana_shinのLinux技術ブログ読者になるhana_shinのLinux技術ブログLinuxの技術情報を掲載しています。ネットワークをメインに掲載していきます。bashの変数展開とは?変数展開とは、${変数}として変数を実際の値に展開することです。${変数:条件}のように条件を指定して、指定した条件で変数を展開することができます。ここでは、条件を指定した変数展開についていくつか確認をしてみます。hana_shinのLinux技術ブログを参照ください。検証環境AlmaLinux版数は以下のとおりです。Tiger)カーネル版数は以下のとおりです。-r4.18.0-372.9.1.el8.x86_64bashの版数は以下のとおりです。変数の長さをもとめる変数の長さを求めるテストプログラムを作成します。${#str}テストプログラムを実行します。2行目の結果より、変数の長さが10であることがわかります。指定したオフセットから指定した長さの文字列をとりだすテストプログラムを作成します。2つ目のechoコマンドは変数のオフセット3の位置から文字列を取り出して表示します。3つ目のechoコマンドは変数のオフセット3の位置から2文字取り出して表示します。${str:3:2}テストプログラムを実行します。2行目の結果より、変数のオフセット3から末尾まで文字列を取り出していることがわかります。3行目の結果より、変数のオフセット3から2文字取り出していることがわかります。変数の部分がパターンと一致した場合、最も長く一致(最長一致)する部分を削除して残りの文字列を返すテストプログラムを作成します。2つ目のechoコマンドは、tで始まりisで終わる最短一致の文字列を削除した後の文字列を表示します。3つ目のechoコマンドは、tで始まりisで終わる最長一致の文字列を削除した後の文字列を表示します。${str##t*is}テストプログラムを実行します。dogであることがわかります。dogもう1つ実施例を示します。httpdの設定ファイルのパス名(/etc/httpd/conf/httpd.conf)から、"/"で始まり"/"で終わる最長一致の文字列を削除して、ファイル名を取り出すテストプログラムを作成します。${path##/*/}テストプログラムを実行します。/etc/httpd/conf/httpd.confから/etc/httpd/conf/の部分が削除されて、httpd.confが表示されていることがわかります。変数の部分がパターンと一致した場合、最も長く一致する部分を削除して残りを返すテストプログラムを作成します。2つ目のechoコマンドは、"."で始まり、任意の文字で終わる最短一致の文字列を削除した後の文字列を表示します。${path%.*}テストプログラムを実行します。2行目の結果より、httpd.confの"."から末尾にかけての文字が削除され、残りの文字列が表示されていることがわかります。変数の先頭からパターンに一致した全ての文字列を置換文字列に置き換えるテストプログラムを作成します。2つ目のechoコマンドは変数の最初のaをAに置き換えた文字列を表示します。3つ目のechoコマンドは変数の全てのaをAに置き換えた文字列を表示します。${str//a/A}テストプログラムを実行します。2行目の結果より、変数の最初のaがAに置き換わっていることがわかります。3行目の結果より、変数の全てのaがAに置き換わっていることがわかります。私が業務や記事執筆で参考にした書籍を以下のページに記載します。)はてなブログをはじめよう!hana_shinさんは、はてなブログを使っています。ブログを報告する引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。