linux shell编程

传入参数

$0:命令名称

$1-n:参数

$#:参数个数

$*:所有参数一个字符串

$@:所有参数空格分隔

$?:上一个命令退出状态

while [ $# -gt 0 ]

do

echo $1

shift

done

变量

1.定义与引用

a=1

echo $a

2.引号是为了区分分隔而存在,特别是为了包含空格!

a="1 2"

echo $a

echo 123$a

echo "123$a"

3.变量可以和常量混在一起;{}的三种用法:隔离变量名、迭代、数组值引用

echo $a"123"

echo ${a}123

mkdir tmp{1 2 3}

4.数组

y=(1 2 3 "we")

y[4]=rt

echo ${y[0]},${y[4]}

echo ${y[*]}#查看所有元素(以一个字符串形式)

echo ${y[@]}#查看所有元素(以分离的元素形式)

echo ${#y[*]}#查看所有元素个数

echo ${!y[*]} #查看所有元素下标

5.declare -p  a#显示变量名和值

将命令结果赋给变量

a=$(ls -l)

a=`ls -l`

请求用户输入变量

read -s -t 5 -n 1 -p "do you accept [Y/N]?" a

整数运算

1.let x=1+3#在let后面进行运算

2.((x=1+2))#在双括号内进行运算

3.echo $((a=1+2))#输出

4.a=$(expr $a + 1)

5.a=`expr $a + 1`

6.declare -i c

c=2+3

expr命令:计算整数并输出值(运算符前后要空格)

expr 1 + 2

expr 2 \* 3

expr 1 = 2

expr 2 \>= 4

 

export命令

导出环境变量,可以用于当前shell和子shell

export var#导入环境变量

export var="123"#赋值和导出一体化

export -n var#取消环境变量

export -p#显示当前所有环境变量

declare命令

1.declare -a array#定义数组

2.declare -A array#定义关联数组

3.declare -i var#定义整数

4.declare -g var#在函数中定义全局变量

5.declare -p var#显示var变量的属性和值

条件判断:test 和[ ]命令

test  条件式   等价于:   [条件式]

1.整数关系判断

[ $a -gt $b ]

[ $a -eq $b ]

[ $a -ne $b ]

[ $a -ge $b ]

2.字符串关系判断

[ $str = 123 ] 

[ $str != 123 ]

[ $str \> 123 ]

[ -z $str  ]

[ -n $str  ]

3.文件判断

[ -e file ]

[ -d file ]

[ -f file ]

[ -x file ]

4.逻辑

[ -e my.c -a -f my.c ]

[ -d my.c -o -f my.c ]

[ ! -e my.c ]

5.[[  ]]:直接用( ),逻辑符号用&&和||

[ -e 2.c -a  \( 1 -gt 2  -a -e my.c \)  ]#用括号表示优先级,这样写不好阅读

[[ ("ab" > "ac") && ( -e 1.c ) ]]

6.((  ))整数运算和比较

7.命令的与和非

[ -e 1.c ]  && [ ! -e 2.c] &&  mv 1.c 2.c

 

if语句

1.if [ -e 1.c ]

then

      rm 1.c

fi

 

2.if [ -e 1.c ]

then

    rm 1.c

elif [ -e 2.c ]

    rm 2.c

else [ -e 3.c ]

    rm 3.c

fi

case 语句

case $day in

1) echo 1;;

2) echo 2;;

*) echo others;;

esac

 

for语句

1.

IFS=;

for a in 1;2;3;eesp

do

echo $a

done

2.

for (( a=1;a<10;a++))

do

echo $a

done

while语句

while [ $a -gt 10 ]

do

echo $a

((a=a+1))

let a=a+1

a=$(expr a + 1)

done

函数

function myfun()

{

echo $1,$2

}

myfun 1 2

a=$(myfun 1 2)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值