Linux(四)--shell编程

shell基础编程

shell是文本文件
批量的linux的命令集
该文件能被shell解释执行
就是shell脚本文件
通常由一段linux命令、shell命令、控制语句及注释语句构成

shell编写

shell脚本是纯文本文件,可以使用任何文本编辑器编写
shell脚本通常是以.sh为后缀

  • 第一行
    指定用那个程序来编译和执行脚本
    #! /bin/bash或者#! /bin/sh
    注释使用#
  • 变量
    变量名:
    变量名必须以字母或下划线开头,后面可以跟字母、数字或下划线,任何其他字符都标志变量名的结束
    变量名区分大小写
    输出:
    $ echo ${变量名}
    环境变量:
    所有用户可用
    $ echo $JAVA_HOME
    全局变量,按照惯例需要大写
    先vi .bash_profile
    ecport 环境变量(大写)
    source .bash_profile
    变量赋值:
    等号两边不能有空格
    如果要给变量赋空值,可以在等号后面跟一个换行符
    清除变量:
    unset
    显示所有的变量:
    set
    执行:
    chmod u+x test.sh
    ./test.sh或者. test.sh或者sh test.sh
    位置参量:
    位置参量时一组特殊的内置变量,通常被shell脚本用来从命令行接受参数,被函数用来保存传递给它的参数
    执行shell脚本时,用户可以通过命令行向脚本传递信息,跟在脚本名后面的用空格隔开的每个字符串都被称为位置参量
    在脚本中使用这些参数时,需通过位置参数来引用。例如:$1表示第一个参数,$2表示第二个参数,以此类推。 9 以 后 需 要 用 花 括 号 吧 数 字 括 起 来 , 如 第 十 个 位 置 参 量 以 9以后需要用花括号吧数字括起来,如第十个位置参量以 9{10}的方式访问
    echo “hello $1-$2” 执行时 ./test.sh caramel
目的linux命令
表示当前脚本的文件名$0
位置参量的个数$#
以单位字符串显示所有位置参量$*
脚本运行的当前进程号$$
最后一个后台运行的进程的进程号$!
显示前面最后一个命令的退出状态,0表示没有错误,其他任何值都表示有错误$?
  • 数组
    $ arr=(zhangsan lisi wangwu)
    $ echo ${arr[0]} zhangsan
    $ echo ${arr[*]} 所有数组内容
  • 时间
    $ date 时间
    $ date + %Y-%m +代表格式
  • 判断
    用test判断
目的linux命令
文件名是否存在test -e
文件名是否存在且为档案(file)常用?test -f
文件名是否存在并为目录?(常用)test -d
两数值相等-eq
两数值不等-ne
n1大于n2-gt
n1小于n2-lt
n1大于等于n2-ge
n1小于等于n2-le
判定字符串是否为0?若string为空字符串,则为truetest -z string
判定字符串是否为0?若string为空字符串,则为falsetest -n string(-n 可省略)
判定str1是否等于str2,若相等,则回传truetest str1 = str2
判定str1是否等于str2,若相等,则回传falsetest str1 != str2

用[ ]判断

[root@www ~]#[ -z "HOME"];echo $?

用if判断
if [判断语句];then执行操作
多重复杂判断式

 if……thenelif……thenelse
 - 循环
 for:
 for var in 1 2 3 4 5
 do 
 	echo${var}
done

while:

while[条件]
do
done

  • 文件读取:
    从文件或命令中逐行读取
cat file | while read line
do
	echo ${line}
done
cat 'ls ./*.txt' | whlie read line
do
	echo ${line}
done
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值