从 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

相关内容