一、Shell脚本基础
Shell是一种脚本语言,可以直接在命令行中执行,也可以写成脚本文件运行。Shell脚本主要是用来自动化执行一些操作,比如批量重命名文件、统计某个目录下的文件大小等。
以下是一段简单的Shell脚本,用来输出Hello World:
#!/bin/bash echo "Hello World"
其中,#!/bin/bash是告诉系统用哪个解释器来解释这个脚本文件,echo "Hello World"表示输出字符串Hello World。
Shell脚本中的变量可以定义,也可以直接使用系统环境变量。在使用变量前需要用$符号进行引用,如$HOME表示用户的家目录。
以下是一个将文件夹中的所有文件名转化为小写的Shell脚本:
#!/bin/bash for file in * do mv "$file" "`echo $file | tr "[:upper:]" "[:lower:]"`" done
其中的关键字for和do表示循环,mv命令是用来重命名文件的。
二、Shell脚本条件判断
条件判断是Shell脚本中很重要的一个部分,可以根据条件来做出不同的响应。
以下是一个判断系统版本号是否大于等于7的Shell脚本:
#!/bin/bash version=$(awk -F= '/^NAME/{print $2}' /etc/os-release | tr -d '"') if [[ $version == *"CentOS Linux release 7"* || $version == *"CentOS Linux 7"* ]]; then echo "System version is greater than or equal to 7." else echo "System version is less than 7." fi
其中的关键字awk是用来获取系统版本号的,if语句是用来判断系统版本号是否大于等于7的。
三、Shell脚本函数
函数是Shell脚本中封装逻辑的一种方式,可以方便地实现复杂的逻辑处理。
以下是一个用来判断一个数是否为质数的Shell脚本函数:
#!/bin/bash is_prime() { n=$1 i=2 while [ $i -lt $n ] do if [ $((n%i)) -eq 0 ]; then return 1 fi i=$((i+1)) done return 0 } if is_prime 7; then echo "7 is prime." else echo "7 is not prime." fi
其中的is_prime函数是用来判断一个数是否为质数的,调用时传入需要判断的数。