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