shell脚本基础知识

写shell脚本时需要在文件头部 #!/bin/sh 来指定解释器,以下的环境为rhel-7.1
1.变量
1.1 本地变量
   变量名=值  eg:  aa=123
   注意:不会影响子shell,变量名字以数字,字母,下划线组成,不能以数字开头,等号两边不可有空格,当值有空格时用引号引起例如:aa=' sasas'
   read -p "请输入一个值"  aa  用户交互输入将值赋值给aa

 
1.2 环境变量
   export 变量名=值
   和本地变量的区别是可以影响子shell
   env 命令可以查看系统所有的环境变量
常见的环境变量
$USER 当前的用户
$UID 当前用户的UID
$HOME 当前用户家目录
$HISTSIZE 历史命令的存储最大值
$HISTFILE 历史命令的存储位置
$PATH 当输入的命令未指定路径时,则在默认路径查找path输出的为默认路径
$PS1 该环境变量决定的是 提示 
$PS2 该环境变量决定的是 反斜线后的提示符

 
1.3 位置变量
 $0 表示脚本名称
 $1 表示第一个参数,以此类推,当成为两位数及其以上需要用大括号例如${10}代表第10个参数
 $# 表示参数的个数
 $? 表示所有参数的值
写如下脚本进行测试
#!/bin/sh
# test.sh
echo "one is : $1"
echo "three is : $3"
echo "two is : $2"
echo "ALL is :$# There are: $*"
给文件增加执行权限 chmod +x ./test.sh
./test.sh bob tom jerry
输出
 
 

2.返回值
 $? 表示返回值
 不仅可以表示命令等的正确错误还可以表示逻辑错误
 正确返回0 不正确返回非0
例如 ifconfig 执行完毕则 echo $? 返回 0
   asssasasa 执行完毕 echo $? 返回 123 非0
$? 的值一直不断的在变化
逻辑错误例如: cat /etc/passwd | grep tomxxx 当无结果时 $?的值为非0 当有结果时,结果为0

3.数值运算
echo 1+2    输出 1+2
echo $((1+2)) 输出 3
echo $[1+2]  输出 3
 
let aa=1+2 
echo $aa    输出3
 
aa=1+2 
declare -i aa 
echo $aa     输出3
 
当除法计算小数时候 echo 'scale=4;2/3' | bc 输出 .6666 scale=n代表保留小数后n位

4.对比
 [  比较 ]   [[  比较 ]]  
 第二种 比 第一种支持正则等
数值的比较 -eq 等于 -gt 大于 -ge 大于等于
       -ne 不等于  -lt 小于 -le 小于等于
字符串的比较 == <= >= != > <
文件属性 [ -属性 /path/file ]  属性有 r w x f d l b e
连接符 && ||

5.判断语句 
5.1 if判断
  if 条件; then
    命令1
    命令2
  elif 条件2; then
    命令1
    命令2
  elif ......
  else 
    命令1
    命令2
  fi
5.2 case判断
  case 变量 in
   值1) 
     命令1
     ;;
   值2)
     命令2
     ;;
   值x)
     命令x
     ;;
   *) 
     命令
     ;;
  esac

 
6.循环
6.1 for循环
 for 变量 in 值1 值2 值3
 do
   循环内容
 done
6.2 while循环
 while 变量
 do
  循环内容
 done 
 while循环可以用来读取文件的内容
 eg:输出/etc/passwd文件的内容
while read aa
    do
     echo $aa
    done < /etc/passwd

7.函数
function 函数名(){
 
函数体
 
}
 
调用直接使用 函数名即可
eg: test.sh
#!/bin/sh
function test(){
echo "this is a test"
}
test
输出 this is a test
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值