從 shell 腳本中的變數中提取特定文本

從 shell 腳本中的變數中提取特定文本

我有2個變數

VAL1="C70AN"
VAL2="MBA30"

我的系統中有一個目錄/opt/web/C70/MBA/

如何使用變數進入該目錄

例如cd /opt/web/$VAL1/$VAL2

如何從 shell 腳本中的變數中提取特定文字?

答案1

@Anthon 的答案是完全正確的,儘管在我看來這意味著輸入太多。我建議定義一個名為(例如)“mycd”的 shell(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

相關內容