读书笔记-shell脚本的用法
shell 就是把命令行中键入的执行命令写成脚本。shell 编译完成,可以直接运行,不需要编译。
一、执行shell 的方式:
1、 ./XX.sh 这种 方式需要shell程序的可执行权限
2、srouce xx.sh 这种方式不需要权限
3、bash xx.sh
二、shell脚本的第一行
#!/bin/sh
以#!开始,后面加上一个pathname
这行话的意思是指定shell脚本执行时被/bin 目录下的sh可执行程序(解释器)解释执行。
可以将第一行写成:#!/bin/bash 来指定使用bash执行该脚本。
三、脚本中注释使用#
四、shell是弱类型语言,
1、变量的定义:赋值 = 号的两边是不能有空格的。
2、变量定义后,可以再次被赋值
3、变量引用 ,使用$ 符号进行引用 $ var 或者${var}
五、
反引号``表示LINUX下的命令
六、if语句的一些常用应用
判断文件是否存在 (-f),注意[] 里面前后都有空格
if [ -f a.txt ];then
echo "yes"
else
echo "no"
touch a.txt
fi
判断数字是否相等 (-eq)大于(-gt) 小于(-lt)大于等于(-ge)小于等于(-le)
判断字符串是否为空(-z),注意,如果变量本身不定义,也不认为为空。
if语句里的逻辑或(-o)
逻辑与 && 和逻辑或 || 与简写的if 表达式相结合
七、
1、case 语句,自己带break一样的,执行完一个后就自动break掉了。
30 var=1
31 case $var in
32 1) echo "1";;
33 2) echo "2";;
34 esac
shell 中的break ,一般是用来跳出(while等 )循环的
2、shell 传参
$#表示调用该shell时传参的个数。($#计数时只考虑真正的参数个数)
$0、$1、$2.......
sh xxxxx.sh 10 12 15
echo $# 打印参数个数
echo $N (N=1,2,3)打印第N个参数