您的位置:

Shell编程入门:从零开始学习Shell脚本编写

一、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函数是用来判断一个数是否为质数的,调用时传入需要判断的数。