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

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

変数が2つあります。

VAL1="C70AN"
VAL2="MBA30"

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

変数を使用してそのディレクトリに入る方法

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

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

答え1

@Anthonの答えは完全に正確ですが、私の考えではあまりにも多くの入力を意味します。たとえば、「mycd」という名前のシェル関数をラッパーとして定義することをお勧めします。

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もあります

関連情報