繁体   English   中英

扩展包含命令的变量在Bash脚本中无法正常工作

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM