[29期] [Linux常用]Shell 命令和语句
来源:互联网 发布:中国有多少混血儿知乎 编辑:程序博客网 时间:2024/06/05 00:19
[常用]Shell 命令和语句
1. read命令:从键盘读入数据,赋给变量
# read USERNAME
范例:
2. expr 命令:对整数型变量进行算术运算。
语法:
# expr Num1 + Num2
-
\* 需要转义
/
示例:[conde]
expr $var1 – 5
expr $var1 / $var2
expr $var3 \* 10
expr `expr 5 + 7` / $var4 * 复杂的运算
var4=`expr $var1 / $var2`
[conde]
3. test 语句:变量测试语句,用于测试变量是否相等、是否为空、文件类型等。
# test 测试条件
测试范围:整数、字符串、文件
a) 整数测试
test INT1 –eq INT2 测试整数是否相等(INT1 is equal to INT2)
test INT1 –ge INT2 测试INT1是否>=INT2 (INT1 is greater than or equal to INT2)
test INT1 –gt INT2 测试INT1是否>INT2(INT1 is greater than INT2)
test INT1 –le INT2 测试INT1是否=<INT2(INT1 is less than or equal to INT2)
test INT1 –lt INT2 测试INT1是否<INT2(INT1 is less than INT2)
test INT1 –ne INT2 测试整数是否不相等(INT1 is not equal to INT2)
b) 字符串测试
test STR1=STR2 测试字符串是否相等
test STR1!=STR2 测试字符串是否不相等
test STR1 测试字符串是否不为空
test –n STR1 测试字符串是否不为空
test –z STR1 测试字符串是否为空
c) 文件测试
test –d FILE 指定文件是否目录
test –f FILE 指定文件是否常规文件
test –x FILE 指定文件是否可执行
test –r FILE 指定文件是否可读
test –w FILE 指定文件是否可写
test –a FILE 指定文件是否存在
test –s FILE 文件的大小是否非0
d) 变量测试语句:一般不单独使用,一般做为if语句的测试条件,如
if test –d $1 then
…
fi
说明:测试$1是否为目录
简化:变量测试语句可用[ ]进行简化,如test –d $1 等价于 [ -d $1 ]
e) 范例1:判断两个数的大小
代码:
执行:
f) 范例2:测试apache是否启动
代码:
流程控制语句:用于控制shell程序的流程
4. exit语句:退出程序执行,并返回一个返回码,返回码为0表示正常退出,非0表示非正常退出。
语法:exit 0
5. if 语句
if...then...fi
范例:从新启动apache服务
6. if...else 语句
语法:
if 条件1 than
命令1
elif 条件2 then
命令2
else
命令3
fi
其他:多个条件的联合
-a:逻辑与,仅当两个条件都成立时,结果为真。
-o:逻辑或,两个条件只要有一个成立,结果为真。
范例:
7. for ... done 语句
语法:
for 变量 in 名字表
do
命令列表
done
范例:
8. select 语句
语法:
select 变量 in 关键字
do
command 1
…
command n
…
done
说明:select把关键字中的每一项做成类似表单,以交互的方式执行do和done之间的命令。
范例:
执行结果:
9. case...esac 语句
语法:
case 变量 in
字符串1) 命令列表1
;;
...
字符串n) 命令列表n
;;
esac
范例1:
执行结果:
范例2:select与case结合使用
执行结果:
10. while 语句
语法:
while 条件
do
命令
done
范例:
11. until 语句
语法:
until 条件
do
命令
done
说明:until类似while循环,不同的是until是条件返回值为假时才继续执行。
范例1:
范例2:until和read的结合,判断输入的字符,直到正确时循环退出
关于:[ "$input" = "Y" ] || [ "$input" = "y" ],有一个为真,即为真。全部为假时即为假。
原文地址:http://bbs.lampbrother.net/read-htm-tid-84817.html
1. read命令:从键盘读入数据,赋给变量
# read USERNAME
范例:
- #!/bin/sh
- read first second third
- echo "the first parameter is $first"
- echo "the second parameter is $second"
- echo "the third parameter is $third"
2. expr 命令:对整数型变量进行算术运算。
语法:
# expr Num1 + Num2
-
\* 需要转义
/
示例:[conde]
expr $var1 – 5
expr $var1 / $var2
expr $var3 \* 10
expr `expr 5 + 7` / $var4 * 复杂的运算
var4=`expr $var1 / $var2`
[conde]
3. test 语句:变量测试语句,用于测试变量是否相等、是否为空、文件类型等。
# test 测试条件
测试范围:整数、字符串、文件
a) 整数测试
test INT1 –eq INT2 测试整数是否相等(INT1 is equal to INT2)
test INT1 –ge INT2 测试INT1是否>=INT2 (INT1 is greater than or equal to INT2)
test INT1 –gt INT2 测试INT1是否>INT2(INT1 is greater than INT2)
test INT1 –le INT2 测试INT1是否=<INT2(INT1 is less than or equal to INT2)
test INT1 –lt INT2 测试INT1是否<INT2(INT1 is less than INT2)
test INT1 –ne INT2 测试整数是否不相等(INT1 is not equal to INT2)
b) 字符串测试
test STR1=STR2 测试字符串是否相等
test STR1!=STR2 测试字符串是否不相等
test STR1 测试字符串是否不为空
test –n STR1 测试字符串是否不为空
test –z STR1 测试字符串是否为空
c) 文件测试
test –d FILE 指定文件是否目录
test –f FILE 指定文件是否常规文件
test –x FILE 指定文件是否可执行
test –r FILE 指定文件是否可读
test –w FILE 指定文件是否可写
test –a FILE 指定文件是否存在
test –s FILE 文件的大小是否非0
d) 变量测试语句:一般不单独使用,一般做为if语句的测试条件,如
if test –d $1 then
…
fi
说明:测试$1是否为目录
简化:变量测试语句可用[ ]进行简化,如test –d $1 等价于 [ -d $1 ]
e) 范例1:判断两个数的大小
代码:
- #!/bin/sh
- if [ $# -ne 2 ]; then # 判断此脚本参数的个数是否等于2
- echo "Not enough parameters"
- exit 0
- fi
- if [ $1 -eq $2 ]; then
- echo "$1 equals $2"
- elif [ $1 -lt $2 ]; then
- echo "$1 littler than $2"
- elif [ $1 -gt $2 ]; then
- echo "$1 greater than $2"
- fi
执行:
- [root@linux example]# sh test 1 1
- 1 equals 1
- [root@linux example]# sh test 1 2
- 1 littler than 2
- [root@linux example]# sh test 2 1
- 2 greater than 1
f) 范例2:测试apache是否启动
代码:
- #!/bin/sh
- # "if...else" usage
- # Using this program to show your system's services.
- echo "Now, the web services of this Linux system will be detect..."
- echo
- # Detect www service
- web=`/usr/bin/pgrep httpd` # 查找httpd的PID
- if [ "$web" != "" ] # 判断查找结果
- then
- echo "The Web service is running."
- else
- echo "The Web service is NOT running."
- /etc/rc.d/init.d/httpd start # 启动Apache服务
- fi
流程控制语句:用于控制shell程序的流程
4. exit语句:退出程序执行,并返回一个返回码,返回码为0表示正常退出,非0表示非正常退出。
语法:exit 0
5. if 语句
if...then...fi
范例:从新启动apache服务
- #!/bin/sh
- if [ -x /etc/rc.d/init.d/httpd ] # 等价于if [ test –x /etc/init.d/http ]
- then
- /etc/rc.d/init.d/httpd restart
- fi
6. if...else 语句
语法:
if 条件1 than
命令1
elif 条件2 then
命令2
else
命令3
fi
其他:多个条件的联合
-a:逻辑与,仅当两个条件都成立时,结果为真。
-o:逻辑或,两个条件只要有一个成立,结果为真。
范例:
- #!/bin/sh
- echo "please input a file name: "
- read file_name # 获取文件名
- if [ -d $file_name ] # 检测是否为目录
- then
- echo "$file_name is a directory"
- elif [ -f $file_name ] # 是否为普通的文件
- then
- echo "$file_name is a common file"
- elif [ -c $file_name -o -b $file_name ] # 是否为 设备或
- then
- echo "$file_name is a device file"
- else
- echo "$file_name is an unknown file" # 不知道
- fi
7. for ... done 语句
语法:
for 变量 in 名字表
do
命令列表
done
范例:
- #!/bin/sh
- for DAY in Sunday Monday Tuesday Wednesday Thursday Friday Saturday ABC # 一次匹配in后面的值
- do
- echo “The day is : $DAY”
- done
8. select 语句
语法:
select 变量 in 关键字
do
command 1
…
command n
…
done
说明:select把关键字中的每一项做成类似表单,以交互的方式执行do和done之间的命令。
范例:
- #!/bin/sh
- # "select" Usage
- echo "What is your favourite OS?"
- select var in "Linux" "UNIX" "Windows" "Other" "Mac" # 选择的数赋给变量var
- do
- break
- done
- echo "You have selected $var"
执行结果:
- [root@linux example]# sh select # 类似表单的选择
- What is your favourite OS?
- 1) Linux
- 2) UNIX
- 3) Windows
- 4) Other
- 5) Mac
- #? 5
- You have selected Mac
- [root@linux example]#
9. case...esac 语句
语法:
case 变量 in
字符串1) 命令列表1
;;
...
字符串n) 命令列表n
;;
esac
范例1:
- #!/bin/sh
- echo "*******************************"
- echo "Please select your operation:"
- echo " Press "C" to Copy"
- echo " Press "D" to Delete"
- echo " Press "B" to Backup"
- echo "*******************************"
- read op # 键盘获取字符
- case $op in # $op 匹配下面的字符串,匹配成功执行其下的相应命令
- C)
- echo "your selection is Copy"
- ;;
- D)
- echo "your selection is Delete"
- ;;
- B)
- echo "your selection is Backup"
- ;;
- *)
- echo "invalide selection"
- esac
执行结果:
- [root@linux example]# sh case
- *******************************
- Please select your operation:
- Press C to Copy
- Press D to Delete
- Press B to Backup
- *******************************
- D
- your selection is Delete
- [root@linux example]#
范例2:select与case结合使用
- #!/bin/bash
- # "select" "case" Usage
- echo "a is 5, b is 3. Please select you method: "
- a=5
- b=3
- select var in "a+b" "a-b" "a*b" "a/b" # 从中选择方法赋给var
- do
- break
- done
- case $var in # 匹配字符串,执行相应的代码
- "a+b") echo 'a+b='`expr $a "+" $b`;;
- "a-b") echo 'a-b='`expr $a "-" $b`;;
- "a*b") echo 'a*b='`expr $a "*" $b`;;
- "a/b") echo 'a/b='`expr $a "/" $b`;;
- *) echo "input error..."
- esac
执行结果:
- [root@linux example]# sh select.case
- a is 5, b is 3. Please select you method:
- 1) a+b
- 2) a-b
- 3) a*b
- 4) a/b
- #? 2 # 选择2的计算方法
- a-b=2
- [root@linux example]#
10. while 语句
语法:
while 条件
do
命令
done
范例:
- #!/bin/sh
- num=1
- while [ $num -le 10 ] # 判断$num 是否=<10
- do
- SUM=`expr $num \* $num` # 执行乘法
- echo $SUM
- num=`expr $num + 1`
- done
11. until 语句
语法:
until 条件
do
命令
done
说明:until类似while循环,不同的是until是条件返回值为假时才继续执行。
范例1:
- #!/bin/sh
- until [ -x /etc/inittab ] # 判断/etc/inittab是否为可执行文件,不是执行do里面的语句
- do
- /bin/ls -l /etc/inittab
- exit 0
- done
范例2:until和read的结合,判断输入的字符,直到正确时循环退出
- #!/bin/bash
- # "read" "until" usage
- echo "Press Y/y to stop..."
- read input # 获取字符
- until [ "$input" = "Y" ] || [ "$input" = "y" ] # 判断后面的语句是否为真,为假时执行do…
- do
- echo "error input,please try again..."
- read input
- done
- echo "Stop here!"
关于:[ "$input" = "Y" ] || [ "$input" = "y" ],有一个为真,即为真。全部为假时即为假。
原文地址:http://bbs.lampbrother.net/read-htm-tid-84817.html
0
上一篇:[29期] 为什么要编译安装?
下一篇:[27期] 关于项目的一些体会
相关热门文章
- 我点点挂机软件
- 关停动漫影视类QQ群 引QQ群改...
- 如何从惠普官方网站下载相应产...
- 买 U 盘千万要注意实际读写速...
- 什么是LCD
- 大家都是用什么来管理hadoop集...
- 网站被人挂了吗,添加了些程序...
- Nginx如何保证不走宕机的那个...
- 大家谈谈MYSQL客户端和服务器...
- 以下代码运行后为何会输出5?...
给主人留下些什么吧!~~
评论热议
- [29期] [Linux常用]Shell 命令和语句
- Linux常用shell命令
- Linux常用shell命令
- Linux常用Shell命令
- linux 常用shell命令
- linux常用shell命令
- Linux常用shell命令
- Linux常用shell命令
- Linux常用Shell命令
- Linux-常用Shell命令
- linux常用shell命令
- 【Linux】常用shell命令
- Linux 常用shell命令
- Linux常用shell命令
- linux常用shell命令
- Linux常用shell命令
- linux学习:常用shell语句
- Linux常用shell命令总结
- 从事web前端两年半后的迷茫
- [29期] 不要让你的LINUX被一群人用板砖拍
- [27期] 冒泡排序法
- [28期] 字符串函数总结
- [29期] 为什么要编译安装?
- [29期] [Linux常用]Shell 命令和语句
- [27期] 关于项目的一些体会
- [29期] 随便说说我的学习感受
- 关于在页面中针对不同版本的IE浏览器实现不同的JS或者CSS样式
- [29期] HTML代码总结(第一弹)
- Can not find a java.io.InputStream with the name [downloadFile] in the invocation stack问题解决
- [29期] 关于HTML学习以及标签记忆的一些感受
- 那些年,mfc开发中要注意的一些小细节
- [28期] 侯永伟职业规划
原创粉丝点击
热门IT博客
热门问题
老师的惩罚
人脸识别
我在镇武司摸鱼那些年
重生之率土为王
我在大康的咸鱼生活
盘龙之生命进化
天生仙种
凡人之先天五行
春回大明朝
姑娘不必设防,我是瞎子
抑郁症想死
真的想死
就是不想死
死也要在一起
没死
想死都不敢
想死却又不敢死
什么样的人易得抑郁症
抑郁症患者的内心世界
抑郁症病人头脑里害怕的事情
抑郁症的人为什么想死
想法
想法英文
想法的英文
想法英语
企业想法
观想法
想法 英文
想法的意思
想法 英语
有想法
想法的英语
想法的拼音
有想法的人
辅助的真实想法
当我把想法画在课桌椅
企业想法描述
管你什么想法
想法申请专利
50个创新小想法带图
我有一个想法
想法是什么意思
创业想法分析书
企业想法描述150字描述范文
想法英语怎么说
想法的英文单词
想法用英语怎么说
想法的英语单词
看法是什么意思
小时候有哪些神奇想法
奉子成婚男人真实想法