linux shell--编程基础
来源:互联网 发布:debian和centos 编辑:程序博客网 时间:2024/05/21 08:37
原文:http://blog.csdn.net/wwp1026/article/details/6891359
执行Shell程序
执行Shell程序有下面三种方法:
方法一:
[root@localhost bin]#./ date
Mr.root,Today is:
二月 06 星期二
Wish you a lucky day !
方法二:
另一种执行date的方法就是把它作为一个参数传递给Shell命令:
[root@localhost bin]# Bash date
Mr.root,Today is:
二月 06 星期二
Wish you a lucky day !
方法三:
为了在任何目录都可以编译和执行Shell所编写的程序,即把/bin的这个目录添加到整个环境变量中。此时,date文件在/bin目录中
具体操作如下:
[root@localhost root]#export PATH=/bin:$PATH
[root@localhost bin]# date
Mr.root,Today is:
二月 06星期二
Wish you a lucky day !
在Shell程序中使用的参数
u 位置参数
u 内部参数
如同ls命令可以接受目录等作为它的参数一样,在Shell编程时同样可以使用参数。Shell程序中的参数分为位置参数和内部参数等。
12-3-1 位置参数
由系统提供的参数称为位置参数。位置参数的值可以用$N得到,N是一个数字,如果为1,即$1。类似C语言中的数组,Linux会把输入的命令字符串分段并给每段进行标号,标号从0开始。第0号为程序名字,从1开始就表示传递给程序的参数。如$0表示程序的名字,$1表示传递给程序的第一个参数,以此类推。
12-3-2 内部参数
上述过程中的$0是一个内部变量,它是必须的,而$1则可有可无,最常用的内部变量有$0、$#、$?、$*,它们的含义如下。
l $0:命令含命令所在的路径。
l $#:传递给程序的总的参数数目。
l $?:Shell程序在Shell中退出的情况,正常退出返回0,反之为非0值。
l $*:传递给程序的所有参数组成的字符串。
键盘读入变量值
在Shell程序设计中,变量的值可以作为字符串从键盘读入,其格式为:
read 变量
字符串比较
作用:测试字符串是否相等、长度是否为零,字符串是否为NULL。
常用的字符串操作符如表12-1所示.。
表12-1 常用的字符串操作符
字符串操作符
含义及返回值
=
比较两个字符串是否相同,相同则为“真”
!=
比较两个字符串是否不相同,不同则为“真”
-n
比较两个字符串长度是否大于零,若大于零则为“真”
-z
比较两个字符串长度是否等于零,若等于零则为“真”
注意:if [ “$ar1” = “$ar2” ] =两边有空格 字符串比较要加后缀("123"x = "123"x)防止解释的时候括号不匹配,”[”后面和”]”前面及等号“=“的前后都应有一个空格;字比较
在Bash Shell编程中的关系运算有别于其他编程语言,用表12-2中的运算符用test语句表示大小的比较。
表12-2 用test比较的运算符
运算符号
含 义
-eq
相等
-ge
大于等于
-le
小于等于
-ne
不等于
-gt
大于
-lt
小于
逻辑操作
在Shell程序设计中的逻辑运算符如表12-3所示。
12-3 Shell中的逻辑运算符
运算符号
含 义
!
反:与一个逻辑值相反的逻辑值
-a
与(and):两个逻辑值为“是”返回值为“是”,反之为“否”
-o
或(or):两个逻辑值有一个为“是”,返回值就是“是”
文件操作
文件测试操作表达式通常是为了测试文件的信息,一般由脚本来决定文件是否应该备份、复制或删除。由于test关于文件的操作符有很多,在表12-4中只列举一些常用的操作符。
表12-4 文件测试操作符
运算符号
含 义
-d
对象存在且为目录返回值为“是”
-f
对象存在且为文件返回值为“是”
-L
对象存在且为符号连接返回值为“是”
-r
对象存在且可读则返回值为“是”
-s
对象存在且长度非零则返回值为“是”
-w
对象存在且且可写则返回值为“是”
-x
对象存在且且可执行则返回值为“是”
多重判断:
if [ 3 -eq 6 ]
then
echo $?
elif [ 3 -eq 6 ]
then
echo $?
elseecho 111
注意:if后面必须要跟then;else只能跟最近的一个if配对。
for循环
语法:
for变量 in 列表
do
操作
done
注意:在循环列表中的空格可表示换行。逻辑操作:
if [ "$num" -ge 0 ]&&[ "$num" -le 9 ]
then
echo "$num is num"
删除垃圾箱中的所有文件。
分析:在本机中,垃圾箱的位置是在$HOME/.Trash中,因而是在删除$HOME/.Trash列表当中的所有文件,程序脚本如下。
(1)编辑脚本程序test12
[root@localhost bin]#vi test12
#! /bin/Bash
for i in $HOME/.Trash/*
do
rm $ i
echo “$ i has been deleted!”
done
while循环
语法:
while 表达式
do
操作
done
只要表达式为真,do和done之间的操作就一直会进行。
- 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编程
- IOS开发-键盘样式风格设置
- Actionscript 3.0 笔记一
- 输出 time 命令的结果到文件中
- 恶作剧!电脑关机脚本代码————【Badboy】
- 黑马程序员-iOS学习日记(七)面向对象-核心语法(二)
- linux shell--编程基础
- GPL与LGPL协议
- jQuery ajax - load() 和setInterval()方法实现页面局部刷新
- Eclipse中添加对Python的中文支持
- Oracle基础知识(1)
- 全文检索引擎Solr系列—–全文检索基本原理
- 中小企业,怎么接近MES
- [HDOJ 4945] 2048 [动态规划]
- POJ 1200 Crazy search