1、shell的知识总结
1.1#!/bin/sh 程序开始第一行为指定解释器
#!/bin/sh
#井号后为注释
echo “hello world”
2、shell变量的定义和赋值,引用
例:string=“hello world”
echo $string
shell的变量没有类型,shell语言为弱类型语言,不同于C/C++等强类型语言。
shell变量赋值时=前后不能有空格
例:i=1
" /$"双引号中如果要打印转义字符,需要在符号前加上反斜杠/
’
’
单
引
号
则
会
把
引
号
内
的
所
有
符
号
打
印
出
来
变
量
引
用
时
需
要
加
上
’单引号则会把引号内的所有符号打印出来 变量引用时需要加上
’单引号则会把引号内的所有符号打印出来变量引用时需要加上
3、shell判断语句
if [ ]; then [ ]中括号前后需要加空格
…
else
…
fi
if[ ]中字符判断条件
[ “str1”=“str2” ] 判断字符串相等
[ $tring -z ]判断字符串是不是空
[ a.txt -f ]判断a.txt是否存在
[ dir -d ]判断目录是否存在
if[ ]中数字判断条件
if[ $num1 -eq $num2 ]
=: -eq
>: -gt ≥: -ge
<: -lt ≤: -le
4、shell如何调用linux中的命令
例如:‘pwd’使用反引号,调用linux中的命令
shell的循环结构
4.1 for循环
for i in 1 2 3 4 5
do
echo $i
done
4.2 while循环
i=0
j=10
while [ $i -lt $j ]
do
echo
i
i
=
(
(
i i=((
ii=((i+1)) #i++
done
5、echo指令创建和追加输入文件
#例如创建一个a.txt文件,并在文件中写入字符
echo “hello world” > a.txt
>代表创建文件
echo在已有文件中添加字符
echo “hello world” >> a.txt
>>代表在已有的文件中追加字符.
6、case语句
#!/bin/sh
i=0
case $i in case中的数值 $i引用变量,用in结尾
0) echo “hello”;; case的值: 0)需要用右括号,且结尾是两个分号
- echo “die”;;
esac
case语句不需要break
7、shell语句的传参
使用$# $0…进行传参
例:echo $# $0 $1 $2 $3
执行程序时输入:./hello.sh aa bb cc
会打印出 3 ./hello.sh aa bb cc $#为传参的个数,$0为程序名字,$0,$1,$2为传入的参数
7.1 shift可以改变传入的参数
例:echo $# $0 $1 $2 $3
shift
echo $# $0 $1 $2 $3
执行程序时输入:./hello.sh aa bb cc
会打印出 3 ./hello_world.sh aa bb cc
2 ./hello_world.sh bb cc
shift会把一个参数移除
shell的break和C语言的break不同,
shell的break是跳出while循环,不是跳出case
C语言中的brake则是跳出for一次循环,或者跳出case。