猿问

bash shell如何获取到命令执行结果的值?

test -e /mnt/111 && echo "yes" || echo "no"
如何获取到test判断mnt下的111是否存在并且根据返回的yes或者no来选择性执行下面的命令?我现在获取不到test这个值
我是这样写的
yn=test -e /mnt/111 && echo "yes" || echo "no"
if [ $yn = yes ];then
cd /mnt/111
echo "I come here"
fi
if [ $yn = no ];then
mkdir /mnt/111
echo "Is create"
fi
这样写不行,获取到的yes和no的值他只是输出了并没有用来做判断啊。
我的想法就是先判断/mnt/111是否存在,如果存在就进入到这个目录中并且说一句话,如果不存在就创建111目录然后说一句话。

元芳怎么了
浏览 9001回答 3
3回答

慕仙森

通过 $? 获取上一次命令执行的结果,0表示成功,非0表示失败。test -e /mnt/111if [ $? -eq 0 ]; thencd /mnt/111echo "I come here"elsemkdir /mnt/111echo "It's created"fi也可以先将结果赋给一个变量 ret=`echo $?`,然后再判断变量的值是否为0。

炎炎设计

将一条命令的执行结果赋给一个变量的方法有:1、使用反引号`` (数字键1左边的键,tab键上面,英文方式输入)如:a=`echo "hello world"`;即将命令 echo "hello world"的输出赋给变量a2、可以使用 $(())如:a=$(echo "hello world")即 将命令echo "hello world"的输出赋给变量a
随时随地看视频慕课网APP
我要回答