シェルスクリプトの変数から特定のテキストを抽出する

シェルスクリプトの変数から特定のテキストを抽出する

変数は2つあります

VAL1="C70AN"
VAL2="MBA30"

私のシステムにはディレクトリが1つあります/opt/web/C70/MBA/

変数を使用してこのディレクトリに移動するにはどうすればいいですか

例えばcd /opt/web/$VAL1/$VAL2

シェル スクリプトの変数から特定のテキストを抽出するにはどうすればよいですか?

答え1

@Anthon の回答は完全に正しいですが、私の意見では、入力が多すぎると思います。たとえば、「mycd」という名前のシェル (bash) 関数をラッパーとして定義することをお勧めします。

function mycd {
  cd /opt/web/${VAL1:0:3}/${VAL2:0:3}
}

これで、変数 $VAR1 と $VAR1 の現在の値に関係なく、この関数を呼び出すと、ディレクトリが期待される場所に変更されます。

実行中の bash ターミナルで次の例を試し、各入力行ウィンドウの最後で ENTER キーを押します。

user% cd; pwd
/home/user
user% function mycd { cd /opt/web/${VAL1:0:3}/${VAL2:0:3} }
user% export VAL1="C70AN"; export VAL2="MBA30"
user% mycd
user% pwd
/opt/web/C70/MBA
user%

もちろん、この例が機能するにはディレクトリツリー「/opt/web/C70/MBA」が存在している必要があります。存在しない場合は、次のようなエラーメッセージが表示されます。

bash: cd: /opt/web/C70/MBA: file or directory not found

この結果は、計算されたディレクトリ(まだ存在しない)に変更しようとする「mycd」関数が正しく動作していることの証明です。

HTHも

関連情報