为简单起见,在我的 bash 脚本顶部是以下代码
#!/bin/bash
#if no arguments passed
if [ -z "$1" ]; then
DEBUG='1>/dev/null'
else
DEBUG='1>&1'
fi
然后在整个脚本的其余部分都是这样的调用
echo Doing something here! $DEBUG
关键是如果有人在没有参数 ( ./myScript.sh
) 的情况下调用脚本,它不会回显任何内容。
但是,如果它们确实传入了参数 ( ./myScript.sh whathaveyou
),则echo
语句应该可以正常工作。
然而不幸的是,echo Doing something here! $DEBUG
被评估为
echo Doing something here! "1>&1"
代替
echo Doing something here! 1>&1
我怎样才能使这项工作?