一、用变量存储重复使用的字符串
#!/bin/bash # 使用变量存储重复使用的字符串 # 不使用变量的写法 echo "Linux is a great OS." echo "I love Linux." echo "However, sometimes it can be frustrating." # 使用变量的写法 osname="Linux" echo "$osname is a great OS." echo "I love $osname." echo "However, sometimes $osname can be frustrating."
在shell脚本中,有些字符串可能需要在多个地方重复使用,为了避免每个地方都写一遍,可以使用变量来存储这些字符串。
二、使用函数封装重复的代码片段
#!/bin/bash # 使用函数封装重复的代码片段 # 不使用函数的写法 echo "Starting backup..." rsync -avz --exclude '*.log' /data/backup/ user@backup-server:/backup/ echo "Backup finished." echo "Starting archive..." tar -czf /data/archive.tgz /data/archive/ echo "Archive finished." # 使用函数的写法 function backup_files { echo "Starting backup..." rsync -avz --exclude '*.log' /data/backup/ user@backup-server:/backup/ echo "Backup finished." } function archive_files { echo "Starting archive..." tar -czf /data/archive.tgz /data/archive/ echo "Archive finished." } backup_files archive_files
在shell脚本中,有些代码片段可能需要在多个地方重复使用,为了避免代码冗余,可以使用函数来封装这些代码片段。
三、使用if语句进行条件判断
#!/bin/bash # 使用if语句进行条件判断 # 判断文件是否存在 if [ -e /path/to/file ]; then echo "File exists." else echo "File not found." fi # 判断变量是否为空 if [ -z "$variable" ]; then echo "Variable is empty." else echo "Variable is not empty." fi
if语句是shell脚本中进行条件判断的基本语句,可以用来判断文件是否存在、变量是否为空等等。
四、使用for循环进行重复操作
#!/bin/bash # 使用for循环进行重复操作 # 循环遍历数组 names=("Alice" "Bob" "Charlie") for name in "${names[@]}"; do echo "Hello, $name!" done # 循环遍历数字 for i in {1..10}; do echo "$i" done
for循环是shell脚本中进行重复操作的基本语句,可以用来循环遍历数组、循环遍历数字等等。
五、使用管道符号进行数据流处理
#!/bin/bash # 使用管道符号进行数据流处理 # 查找某个目录下占用空间最大的10个文件 du -h /path/to/dir | sort -hr | head -n 10 # 统计某个日志文件中各个HTTP状态码的出现次数 cat /var/log/nginx/access.log | awk '{print $9}' | sort | uniq -c | sort -rn
管道符号可以将一个命令的输出作为另一个命令的输入,可以用来进行数据流处理,比如查找某个目录下占用空间最大的文件、统计某个日志文件中各个HTTP状态码出现的次数等等。