我有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