在 Linux Shell 腳本中,這些符號和工具的功能如下:
一、位置參數 $0 $1 $2 $3
符號 | 功能說明 | 示例 |
---|---|---|
$0 | 腳本自身的文件名 | 若執行 ./test.sh ,則 $0 值為 ./test.sh |
$1 | 第一個參數 | 執行 ./test.sh apple 時,$1 值為 "apple" |
$2 | 第二個參數 | 執行 ./test.sh apple banana 時,$2 值為 "banana" |
$3 | 第三個參數 | 以此類推 |
示例腳本:
#!/bin/bash
echo "腳本名稱: $0"
echo "第一個參數: $1"
echo "第二個參數: $2"
echo "第三個參數: $3"
運行 ./demo.sh hello world 123
輸出:
腳本名稱: ./demo.sh
第一個參數: hello
第二個參數: world
第三個參數: 123
二、>>
符號
符號 | 功能說明 | 示例 |
---|---|---|
>> | 追加輸出到文件(不會覆蓋原有內容) | echo "new line" >> file.txt |
> | 覆蓋輸出到文件(會清空原內容) | echo "new content" > file.txt |
示例:
# 首次寫入
echo "Line 1" > log.txt # log.txt 內容:Line 1
# 追加內容
echo "Line 2" >> log.txt # log.txt 內容:Line 1\nLine 2
三、awk
工具
awk
是一個強大的文本處理工具,常用于按列處理數據。
1. 基礎用法
命令 | 功能說明 |
---|---|
awk '{print $1}' | 打印每行的第一列 |
awk -F':' '{print $3}' | 使用冒號 : 作為列分隔符,打印第三列 |
示例文件 data.txt
:
Alice:25:Engineer
Bob:30:Doctor
命令示例:
awk -F':' '{print "Name:", $1, "Age:", $2}' data.txt
輸出:
Name: Alice Age: 25
Name: Bob Age: 30
2. 結合備份腳本中的用法
在之前備份腳本的示例中,使用 awk
從文件名中提取日期:
find ... | awk -F_ '{print $2}' | awk -F. '{print $1}'
- 文件名示例:
mysql_20231015.sql
- 第一次
awk
分割:mysql
和20231015.sql
- 第二次
awk
分割:20231015
和sql
,最終提取20231015
3. 高級功能
功能 | 示例 | 說明 |
---|---|---|
條件過濾 | awk '$3 > 30 {print $0}' | 篩選第三列大于30的行 |
內置變量 | awk '{print NR, NF}' | NR 當前行號,NF 列數 |
計算 | awk '{sum += $1} END {print sum}' | 計算第一列的總和 |
四、總結
符號/工具 | 核心作用 | 典型場景 |
---|---|---|
$0 $1 $2 $3 | 獲取腳本參數 | 腳本需要處理用戶輸入時 |
>> | 追加內容到文件 | 日志記錄、持續寫入數據 |
awk | 文本列處理 | 日志分析、數據提取、格式轉換 |
掌握這些基礎后,可以更高效地編寫 Shell 腳本!