shell script
shell script 是利用shell功能写的一个“程序”,可以用来方便管理主机
shell script 编写的注意事项:
1.命令的执行时从上往下,从左往右;
2.命令、参数间的多个空白会被忽略
3.如果读取到Enter符号(CR),就尝试开始执行该行(或该串)命令
4.如果一行内容太多,可以使用"[Enter]"来扩展至下一行
5.#可以作为注释
如何执行shell script,假设有一个/home/shell.sh 的文件
1. 直接执行命令:shell.sh 文件必须要具备可读和可执行(rx)权限,然后
- 绝地路径:使用 /home/shell.sh 来执行命令
- 相对路径:切换工作目录到/home, 然后使用 ./shell.sh 来执行
- 变量PATH功能: 将shell.sh 放到PATH制定的目录内
2. 以bash 进程来执行:bash shell.sh
3. 以source 来执行: source shell.sh
第1、2种方式运行script时,会产生一个子进程,并在子进程中运行script,script中任何设置都不会影响当前所在进程
第3种方式运行script,其实就是在当前进程中运行
编写第一个script
1 #!/bin/bash 2 # this is my first Linux script 3 echo "Hello World!" 4 exit 0
第一行 #!/bin/bash 很重要,必须有。它指明了在这个文件内的语法使用bash的语法。当这个程序被执行时,它能够加载bash的相关环境配置文件,并且执行bash来使我们下面的命令能够执行
第二行是注释
第三行是程序主体,echo 表示在控制台打印
第四行不是必须的,但是有这种用法:我们可以使用exit这个命令来中断程序,并且传回一个数值给系统,若接着执行echo $?则可得到0的值。 哈哈,那么我们就可以通过exit n 来自定义错误信息了。
一些简单范例
1.
1 #!/bin/bash 2 # 3 # user input his firstname and last name ,then print them in console 4 # 5 6 read -p "Please input your first name: " firstName #提示用户输入 7 read -p "Please input your las name: " lastName 8 echo "Your full name is :$firstName $lastName"
第6、7行提示用户输入,然后把输入的值分别存入变量firstName和lastName
第8行输出
2.
1 #!/bin/bash 2 #以用户输入为前缀, 当天日期为后缀新建一个文件 3 read -p "Please input prefix :" file 4 fileName=${file:-"fileName"} #如果file为空,那么 fileName变量赋值字符串“fileName” 5 date1=$(date +%Y%m%d) #注意$(..)的用法,意为执行括号里的命令,返回 6 file1=${fileName}${date1} #连接字符串 7 touch "$file1" #新建文件
3.
1 #!/bin/bash 2 # 计算和 3 a1=2 4 a2=3 5 echo $((a1+a2)) #计算可以通过 $(( ... ))的方式