前言
一个简单的 Bash 脚本通常以 #!/bin/bash
开始,称为 shebang 行,指示系统使用 Bash 解释器来运行脚本。
#!/bin/bash
# 这是一个简单的 Bash 脚本
echo "Hello, World!"
保存文件,例如 script.sh
,然后给予执行权限并运行:
chmod +x script.sh
./script.sh
Operating System: Ubuntu 22.04.4 LTS
基本概念
- Shell 脚本:一系列命令的集合,保存在文件中,可被 shell 解释器执行。
- Shebang:脚本第一行,指定解释器,如
#!/bin/bash
。
变量
声明变量:直接赋值,无需类型声明。
var="Hello, World!"
输出变量:
echo $var
读取用户输入:
read input
输出
echo
命令:输出文本到终端。echo "Hello, World!"
条件判断
if
语句:if [ "$var" == "hello" ]; then echo "Match!" else echo "No match." fi
比较运算符:
- 字符串比较:
==
,!=
- 数值比较:
-eq
,-ne
,-lt
,-le
,-gt
,-ge
- 字符串比较:
循环
for
循环:for i in 1 2 3 4 5 do echo "Number $i" done
while
循环:count=0 while [ $count -lt 5 ] do echo "Count is $count" count=$((count+1)) done
函数
定义函数:
my_func() { echo "This is a function." }
调用函数:
my_func
脚本执行
赋予执行权限:
chmod +x script.sh
运行脚本:
./script.sh
常用命令
- **
grep
**:文本搜索。 - **
sed
**:流编辑器。 - **
awk
**:文本处理工具。
错误处理
退出脚本:
exit 1
严格模式:
set -e
文件操作
检查文件存在:
if [ -e "file.txt" ]; then echo "File exists." fi
遍历目录:
for file in /path/*; do echo $file done
正则表达式
基本用法:
if [[ $var =~ ^hello ]]; then echo "Matches pattern." fi
位置参数
Bash 脚本可以接收命令行参数,称为位置参数,用 $1
, $2
, 等表示。
#!/bin/bash
# 接收参数并输出
echo "第一个参数是: $1"
echo "第二个参数是: $2"
运行时传入参数:
./script.sh arg1 arg2
设置参数默认值
有时我们希望在用户没有提供参数时,使用默认值。可以通过以下几种方式实现。
使用 if
语句检查参数
#!/bin/bash
if [ -z "$1" ]; then
PARAM="default_value"
else
PARAM="$1"
fi
echo "使用参数: $PARAM"
使用变量扩展 ${variable:-default}
#!/bin/bash
PARAM=${1:-default_value}
echo "使用参数: $PARAM"
${1:-default_value}
意味着如果 $1
未设置或为空,则使用 default_value
。
示例:带默认值的脚本
#!/bin/bash
# 设置默认值
NAME=${1:-"World"}
echo "Hello, $NAME!"
运行脚本时,可以传入参数或不传:
./script.sh # 输出: Hello, World!
./script.sh Alice # 输出: Hello, Alice!
其他常用变量
$0
:脚本名称。$#
:参数个数。$@
:所有参数,作为单独的字符串。$*
:所有参数,作为单个字符串。
示例:
#!/bin/bash
echo "脚本名: $0"
echo "参数个数: $#"
echo "所有参数: $@"
运行:
./script.sh arg1 arg2
# 输出:
# 脚本名: ./script.sh
# 参数个数: 2
# 所有参数: arg1 arg2
循环处理参数
可以使用 for
循环遍历所有参数。
#!/bin/bash
for arg in "$@"
do
echo "参数: $arg"
done
运行:
./script.sh apple banana cherry
# 输出:
# 参数: apple
# 参数: banana
# 参数: cherry
实践建议
- 多写小脚本练习。
- 查阅手册(
man
)了解命令详细用法。 - 使用
set -x
调试脚本。
总结
通过这些基础内容,你可以开始编写简单的 Bash 脚本,并处理命令行参数及其默认值。随着经验的积累,可以探索更多高级功能,如条件判断、循环、函数等。
结语
第二百三十四篇博文写完,开心!!!!
今天,也是充满希望的一天。