首页 > 代码库 > shell中逻辑与的两种表示方法
shell中逻辑与的两种表示方法
bash中表示逻辑与的两种方法:
(1)[ $state == "running" -a $name == "zone1" ]
(2)[[ $state == "running" && $name == "zone1" ]]
ksh中支持第二种。
实例:
#! /bin/bash read -p "pelease input your name:" name read -p "pleaase input your password:" passwd if [ $name == "root" -a $passwd == "123" ]; then echo "登录成功!" else echo "登录失败!" fi if [[ $name == "root" && $passwd == "123" ]]; then echo "Login pass" else echo "Login fail" fi
输出结果:
pelease input your name:root
pleaase input your password:123
登录成功!
Login pass
在ksh中read -p的使用好像有问题,会出现./learn_shell.save[2]: read: no query process,这样的错误提示。
因此改成下面的形式:
(1)第一种
echo "ThePrompt\c"
read TheSomthing
echo $TheSomething
(2)第二种
read TheSomething?‘ThePrompt‘
细微区别就是第一种提示语句后会回车,而第二种不会回车。
实例:
#! /usr/bin/ksh echo "pelease input your name:" read name read passwd?"pleaase input your password: " if [[ $name == "root" && $passwd == "123" ]]; then echo "Login pass" else echo "Login fail" fi # ./learn_shell.save pelease input your name: (这个地方有回车) root pleaase input your password: 123 Login pass
shell中逻辑与的两种表示方法
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。