Shell 脚本用于自动化任务、管理系统和处理文件,Bash 是最常见的 Shell 解释器。
创建脚本
1
2
3
4
5
6
7
8
9
10
11
12
| # 创建脚本文件
touch myscript.sh
# 添加 shebang 和内容
#!/bin/bash
echo "Hello, World!"
# 赋予执行权限
chmod +x myscript.sh
# 运行
./myscript.sh
|
基本语法
变量
1
2
| NAME="Alice" # 定义变量(等号两边不能有空格)
echo "Hello, $NAME!" # 使用变量
|
条件判断
1
2
3
4
5
| if [ "$NAME" == "Alice" ]; then
echo "Welcome, Alice!"
else
echo "Who are you?"
fi
|
循环
1
2
3
4
5
6
7
8
9
10
11
| # for 循环
for i in {1..5}; do
echo "Number $i"
done
# while 循环
count=1
while [ $count -le 5 ]; do
echo "Count $count"
((count++))
done
|
函数
1
2
3
4
5
| greet() {
echo "Hello, $1!" # $1 是第一个参数
}
greet "Bob"
|
常用命令
| 命令 | 说明 |
|---|
ls | 列出文件 |
mkdir | 创建目录 |
rm | 删除文件 |
cat | 显示文件内容 |
grep | 查找字符串 |
sort | 排序 |
管道与重定向
1
2
3
| echo "Hello" > output.txt # 重定向(覆盖)
echo "World" >> output.txt # 追加
ls | grep "pattern" # 管道
|
脚本参数
1
2
3
4
| echo "Script: $0" # 脚本名
echo "First arg: $1" # 第一个参数
echo "All args: $@" # 所有参数
echo "Arg count: $#" # 参数个数
|
完整示例
1
2
3
4
5
6
7
8
9
10
11
12
13
14
| #!/bin/bash
echo "Enter your name:"
read NAME
echo "Hello, $NAME!"
if [ "$NAME" == "Alice" ]; then
echo "Welcome back!"
fi
for i in {1..3}; do
echo "Loop $i"
done
|
Comments