Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用于超长路径的bash变量的间接扩展_Bash_Shell_Path - Fatal编程技术网

用于超长路径的bash变量的间接扩展

用于超长路径的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'

我想间接展开path变量来创建另一条路径

实例 后果 如下所示,只有
${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}"