if [ ! -d /home/$USER/testfoo ]; then mkdir /home/$USER/testfoo; fi
如果目录testfoo不存在,具有所需的效果
但
TESTCMD="if [ ! -d /home/$USER/testfoo ]; then mkdir /home/$USER/testfoo; fi"
$TESTCMD
返回
if: command not found
我做错了什么?
答案 0 :(得分:3)
如果您使用变量作为这样的命令,它会将变量的内容解释为命令的名称,而不是作为命令后跟其参数。
因此,如果您执行VAR="foo bar"
然后$VAR
,它会查找名为foo bar
的可执行文件(或内置文件),而不是名为foo
的可执行文件使用参数bar
进行调用。
要做你想做的事,你需要定义一个函数:
TESTCMD() {
if [ ! -d /home/$USER/testfoo ]
then
mkdir /home/$USER/testfoo
fi
}
TESTCMD