用于超长路径的bash变量的间接扩展
我想间接展开path变量来创建另一条路径 实例 后果 如下所示,只有用于超长路径的bash变量的间接扩展,bash,shell,path,Bash,Shell,Path,我想间接展开path变量来创建另一条路径 实例 后果 如下所示,只有${long_path}正确打印 Long path: /very/long/path/that/I/dont/want/to/type. Archive path: ''. bash中的变量不在单引号上展开,需要双引号 archive_path="${dta_fld}/Archive" 从您的示例代码来看,您似乎没有需要间接扩展的候选者。在直接展开中,它适用于下面这样的情况,即您尝试展开的变量是预定义的 foo='bar'
${long_path}
正确打印
Long path: /very/long/path/that/I/dont/want/to/type.
Archive path: ''.
bash
中的变量不在单引号上展开,需要双引号
archive_path="${dta_fld}/Archive"
从您的示例代码来看,您似乎没有需要间接扩展的候选者。在直接展开中,它适用于下面这样的情况,即您尝试展开的变量是预定义的
foo='bar'
bar='zoo'
printf "%s\n" "${!foo}"
这是毫无意义的。。。什么是dta\U fld?您(认为您)为什么需要间接扩展?仍然没有意义:
${archive\u path}
扩展为${long\u path}/archive
(逐字),而${!archive\u path}
将扩展为名为${long\u path}/archive
的变量的扩展。。。但是没有这样的变量!你了解间接扩张吗?你为什么需要间接扩张?
foo='bar'
bar='zoo'
printf "%s\n" "${!foo}"