[英]Expanding a variable containing a command doesn't work as expected in a Bash script
我有一个定义如下的变量:
#!/bin/bash
#commonvars.sh
#Plus other definitions
NUMBERED='nl -w3 -s". " '
然后我在另一个脚本中使用它:
#!/bin/bash
source commonvars.sh
$NUMBERED "${DL_FILE}.titles"
但是nl
命令不起作用,并显示用法错误。
usage: nl [-p] [-b type] [-d delim] [-f type] [-h type] [-i incr] [-l num]
[-n format] [-s sep] [-v startnum] [-w width] [file]
我确定这肯定是一件小事,但是上面我到底在做什么错? 我这样做的原因是为了使我的所有脚本都得到标准化的nl
命令调用。
在Mac OS X 10.9.4上运行。
尝试这个:
commonvars.sh:
编辑(我之前粘贴了错误的内容)
NUMBERED=("nl" "-w3" "-s. ")
其他脚本:
source commonvars.sh
"${NUMBERED[@]}" "${DL_FILE}.titles"
如果在出现问题的扩展之前设置跟踪模式,则可以更好地了解发生了什么:
set -x
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.