# 如何寫Shell腳本
## 引言
Shell腳本是Linux/Unix系統中強大的自動化工具,通過將命令按邏輯順序組合,可以完成文件操作、系統管理、批量處理等任務。本文將詳細介紹Shell腳本的編寫方法,包括基礎語法、常用技巧和實際案例。
---
## 一、Shell腳本基礎
### 1. 創建第一個腳本
```bash
#!/bin/bash
echo "Hello World!"
#!/bin/bash
稱為shebang,指定解釋器chmod +x script.sh
./script.sh
或 bash script.sh
name="Alice"
echo $name # 輸出變量
readonly PI=3.14 # 只讀變量
unset name # 刪除變量
變量 | 含義 |
---|---|
$0 |
腳本名稱 |
$1-$9 |
位置參數 |
$# |
參數個數 |
$* |
所有參數 |
$? |
上條命令返回值 |
if [ $a -gt $b ]; then
echo "a大于b"
elif [ $a -eq $b ]; then
echo "a等于b"
else
echo "a小于b"
fi
for循環:
for i in {1..5}; do
echo "第$i次循環"
done
while循環:
count=1
while [ $count -le 5 ]; do
echo "Count: $count"
((count++))
done
function greet() {
echo "Hello, $1!"
}
greet "World" # 調用函數
add() {
return $(($1 + $2))
}
add 3 5
echo "結果: $?" # 獲取返回值
grep -E "^[A-Za-z]+" file.txt # 匹配字母開頭的行
sed 's/old/new/g' file.txt # 替換文本
awk '{print $1}' data.txt # 打印第一列
awk -F',' '{sum+=$2} END{print sum}' data.csv # 計算第二列總和
command || {
echo "命令執行失敗"
exit 1
}
#!/bin/bash -x # 啟用調試
set -e # 遇到錯誤立即退出
set -o pipefail # 管道命令失敗時退出
#!/bin/bash
backup_dir="/backup"
[ ! -d $backup_dir ] && mkdir -p $backup_dir
tar -czf $backup_dir/$(date +%Y%m%d).tar.gz /path/to/data
#!/bin/bash
logfile="/var/log/nginx/access.log"
awk '{print $1}' $logfile | sort | uniq -c | sort -nr > top_ips.txt
[[ ]]
代替[ ]
(支持更多特性)"$var"
$(command)
代替反引號掌握Shell腳本能極大提升工作效率。建議從簡單任務開始,逐步積累經驗。遇到問題時,善用man
命令查看文檔,或搜索社區解決方案。
提示:可通過
shellcheck
工具檢查腳本語法問題 “`
(全文約1200字,實際字數可能因排版略有差異)
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。