当前位置: 技术问答>linux和unix
请大仙们指点---关于linux shell中括号的一点疑问。
来源: 互联网 发布时间:2016-08-27
本文导语: 今天在分别执行了下面三段代码: #!/bin/bash nihao_dir=/opt/nihao; if [ ! -d $nihao_dir ] then mkdir -p $nihao_dir echo "nihao_dir is made" fi #!/bin/bash nihao_dir=/opt/nihao; if [ ! -d $(nihao_dir) ] then mkdir -p $(nihao_dir) echo "nihao_dir...
今天在分别执行了下面三段代码:
#!/bin/bash
nihao_dir=/opt/nihao;
if [ ! -d $nihao_dir ]
then
mkdir -p $nihao_dir
echo "nihao_dir is made"
fi
#!/bin/bash
nihao_dir=/opt/nihao;
if [ ! -d $(nihao_dir) ]
then
mkdir -p $(nihao_dir)
echo "nihao_dir is made"
fi
#!/bin/bash
nihao_dir=/opt/nihao;
if [ ! -d $(nihao_dir) ]
then
mkdir -p $(nihao_dir)
echo "nihao_dir is made"
fi
1,3段执行的结果是相同,但是2却报错了,然后我就产生一个疑问,shell中什么时候需要用到括号,什么时候的括号是需要用转义的呢?
#!/bin/bash
nihao_dir=/opt/nihao;
if [ ! -d $nihao_dir ]
then
mkdir -p $nihao_dir
echo "nihao_dir is made"
fi
#!/bin/bash
nihao_dir=/opt/nihao;
if [ ! -d $(nihao_dir) ]
then
mkdir -p $(nihao_dir)
echo "nihao_dir is made"
fi
#!/bin/bash
nihao_dir=/opt/nihao;
if [ ! -d $(nihao_dir) ]
then
mkdir -p $(nihao_dir)
echo "nihao_dir is made"
fi
1,3段执行的结果是相同,但是2却报错了,然后我就产生一个疑问,shell中什么时候需要用到括号,什么时候的括号是需要用转义的呢?
|
#!/bin/bash
nihao_dir=/opt/nihao;
if [ ! -d $(nihao_dir) ]
then
mkdir -p $(nihao_dir)
echo "nihao_dir is made"
fi
--------------
第二段代码错误 不是因为中括号的问题
$(A) 表示把A当命令执行 类似于反单引号`A` 比如把A执行的结果赋给B 那么B=$(A)和B=`A`都是对的
${A} 才表示引用变量A
nihao_dir=/opt/nihao;
if [ ! -d $(nihao_dir) ]
then
mkdir -p $(nihao_dir)
echo "nihao_dir is made"
fi
--------------
第二段代码错误 不是因为中括号的问题
$(A) 表示把A当命令执行 类似于反单引号`A` 比如把A执行的结果赋给B 那么B=$(A)和B=`A`都是对的
${A} 才表示引用变量A