为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

元芳怎么了 2019-04-15 11:08:53
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 ];thencd /mnt/111echo "I come here"fiif [ $yn = no ];thenmkdir /mnt/111echo "Is create"fi这样写不行,获取到的yes和no的值他只是输出了并没有用来做判断啊。我的想法就是先判断/mnt/111是否存在,如果存在就进入到这个目录中并且说一句话,如果不存在就创建111目录然后说一句话。
查看完整描述

3 回答

?
慕仙森

TA贡献1827条经验 获得超7个赞

通过 $? 获取上一次命令执行的结果,0表示成功,非0表示失败。

test -e /mnt/111
if [ $? -eq 0 ]; then
cd /mnt/111
echo "I come here"
else
mkdir /mnt/111
echo "It's created"
fi

也可以先将结果赋给一个变量 ret=`echo $?`,然后再判断变量的值是否为0。



查看完整回答
反对 回复 2019-04-16
?
炎炎设计

TA贡献1808条经验 获得超4个赞

将一条命令的执行结果赋给一个变量的方法有:
1、使用反引号`` (数字键1左边的键,tab键上面,英文方式输入)
如:a=`echo "hello world"`;

即将命令 echo "hello world"的输出赋给变量a

2、可以使用 $(())

如:a=$(echo "hello world")

即 将命令echo "hello world"的输出赋给变量a

查看完整回答
反对 回复 2019-04-16
  • 3 回答
  • 0 关注
  • 9000 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信