【发布时间】:2012-04-16 20:26:54
【问题描述】:
我有一个包含文件名列表的文本文件。我想使用 AWK 从特定的行号创建一个变量。我得到正确的输出使用:
awk "NR==\$Line" /myPath/fileList.txt
我想将此输出分配给一个变量,并且从文档中我发现我希望以下工作:
INFILE=$(awk "NR==\$Line" /myPath/fileList.txt)
或
INFILE=`awk "NR==\$Line" /myPath/fileList.txt`
然而,
echo "\$INFILE"
为空白。我是 bash 脚本的新手,不胜感激。
【问题讨论】:
-
这些命令都不应该提供任何输出,它们设置了变量 INFILE。 (第一个版本“更好”。)
-
对不起,我应该澄清一下。 echo "\$INFILE" 为空。
-
如果您对美元符号进行转义,则不会扩展 INFILE 变量。请改用
echo "$INFILE"。 -
@ghoti:当我通过硬编码行号来测试这一点时,我发现转义是必要的。我认为这是因为我将脚本提交给作业调度程序。
-
echo "\$INFILE"绝对不是空白。这意味着回显字符$INFILE,字面意思是:美元符号,后跟INFILE。
标签: bash awk sungridengine command-substitution