免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 7724 | 回复: 12
打印 上一主题 下一主题

【请问】在shell中用 &&和||替换 if else语句 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-03-17 15:19 |只看该作者 |倒序浏览
想吧if else 语句结构换成&&和||  ,遇到问题请大牛指点~


if [ "$HOSTNAME" = linux ]
then
echo "local hostname is linux"
else
echo "local hostname is $HOSTNAME"
fi
转换成&& || 如下

[ "$HOSTNAME" = linux ] && echo "local hostname is linux" || echo "local hostname is $HOSTNAME"

################################################
问题: 能不能把  if   elif else fi  转换成&&  ||
example:

echo $HOSTNAME
if [ "$HOSTNAME" = linux ]
then
echo "local hostname is linux"
elif [ "$OSTYPE" = linux ]
then
echo "local ostype is linux"

else
echo "local hostname is $HOSTNAME"
fi
转换成&&  || 样式

论坛徽章:
0
2 [报告]
发表于 2010-03-17 15:24 |只看该作者
不清楚..期待高手.......

论坛徽章:
0
3 [报告]
发表于 2010-03-17 15:24 |只看该作者
用{ }

论坛徽章:
0
4 [报告]
发表于 2010-03-17 15:26 |只看该作者
回复 3# ywlscpl


    请ywlscpl 大哥明解,{:3_182:}

论坛徽章:
0
5 [报告]
发表于 2010-03-17 15:26 |只看该作者
[ "$HOSTNAME" = linux ] && echo "local hostname is linux" || { [ "$OSTYPE" = linux ] && echo "local ostype is linux" ||echo "local hostname is $HOSTNAME";}

论坛徽章:
0
6 [报告]
发表于 2010-03-17 15:28 |只看该作者

论坛徽章:
0
7 [报告]
发表于 2010-03-17 15:39 |只看该作者
[ "$HOSTNAME" = linux ] && echo "local hostname is linux" || { [ "$OSTYPE" = linux ] && echo "local  ...
sunbw001 发表于 2010-03-17 15:26



    学习.........

论坛徽章:
0
8 [报告]
发表于 2010-03-17 15:44 |只看该作者
多谢各位大哥,马上做了测试,有遇到问题,
193:~ # [ 1 = 1 ] >/dev/null 2>&1 && echo "11111111111" ||{[ 2 = 2 ] >/dev/null 2>&1 && echo "22222222" ||echo "33333333333333"}
11111111111
22222222
======================================================
193:~ # [ 1 = 2 ] >/dev/null 2>&1 && echo "11111111111" ||{[ 2 = 2 ] >/dev/null 2>&1 && echo "22222222" ||echo "33333333333333"}
33333333333333}
======================================================
193:~ # [ 1 = 2 ] >/dev/null 2>&1 && echo "11111111111" ||{[ 2 = 2 ] >/dev/null 2>&1 && echo "22222222" ||echo "33333333333333" ;}
-bash: syntax error near unexpected token `}'
======================================================
193:~ # [ 1 = 2 ] >/dev/null 2>&1 && echo "11111111111" ||{[ 2 = 3 ] >/dev/null 2>&1 && echo "22222222" ||echo "33333333333333"}
33333333333333}
======================================================
193:~ # [ 1 = 1 ] >/dev/null 2>&1 && echo "11111111111" ||{[ 2 = 3 ] >/dev/null 2>&1 && echo "22222222" ||echo "33333333333333"}
11111111111
22222222
======================================================

论坛徽章:
0
9 [报告]
发表于 2010-03-17 15:49 |只看该作者
[ 1 = 1 ] >/dev/null 2>&1 && echo "11111111111" ||{([ 2 = 2 ] >/dev/null 2>&1 && echo "22222222" ||echo "33333333333333")}

论坛徽章:
0
10 [报告]
发表于 2010-03-17 15:53 |只看该作者
  1. ([ 1 = 1 ] >/dev/null 2>&1) && echo "11111111111" ||{([ 2 = 2 ] >/dev/null 2>&1) && echo "22222222" ||echo "33333333333333";}
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP