一、Xshell 实操
1.多命令实操
(1) 分号执行
date ; who
(2) 管道执行
date | who
2.脚本创建与运行实操
(1)新建 test.sh 基础脚本
date
who
(2)两种运行方式
方式1,无需权限
bash test.sh
方式2,赋权后运行
chmod u+x test.sh
ls -l test.sh
./test.sh
3.echo 输出实操
改造 test.sh 脚本
echo -n "当前系统时间:"
date
echo "登录用户列表:"
Who
4.变量实操
(1) 系统变量脚本 var_test.sh
echo "用户名:$USER,家目录:$HOME"
echo "转义符号:\$HOME"
(2) 自定义变量
name="Tom"
echo $name
(3) 命令替换生成日志
now=$(date +%y%m%d)
log="log.$now"
who > $log
5.wc 统计实操
wc -l *.sh
6.数学运算实操
(1) 整数运算脚本 math.sh
#!/bin/bash
res1=$((100*(50-45)))
res2=$[100/52]
echo $res1 $res2
(2) bc 浮点运算
float_result=$(echo "scale=4;100/52" | bc)
echo $float_result
7.退出状态码实操
(1) 查看命令状态
ls math.sh
echo $?
ls nofile
echo $?
(2) 自定义退出脚本 math.sh
exit 5
执行验证:
./math.sh
echo $?
二、理论知识框架
1.单行多命令执行
(1) 分号;
① 概念:同一行分隔多条命令,依次完整执行,每条命令独立输出,无数据传递。
② 参数说明:无额外参数,仅作为命令分隔符。
(2) 管道|
① 概念:将前一条命令输出作为后一条输入,仅展示最终执行结果。
② 参数说明:无额外参数,用于命令数据流传递。
2.Shell 脚本创建与运行
(1) 脚本编写规则
① .sh为脚本后缀,首行#!/bin/bash指定 bash 解释器;#单行注释。
(2) 运行方式
① bash 脚本名:直接调用解释器,无需执行权限。
② ./ 脚本名:相对路径运行,文件必须拥有 x 执行权限,chmod u+x添加权限。
3.echo 输出控制
(1) echo "文本":默认输出后自动换行。
(2) echo -n "文本":-n 参数取消末尾换行,文字与后续输出同行。
4.Shell 变量
(1) 系统环境变量
① $变量名读取变量值,\$转义原样打印符;常用:USER、UID、HOME。
(2) 自定义变量
① 命名:字母、数字、下划线,长度≤20 字符;赋值格式变量=值,等号两侧无空格;仅脚本内生效。
(3) 命令替换
① 两种写法`命令`、$(命令),抓取命令执行结果赋值变量,推荐$(命令)。
5.wc 统计命令
(1) 基础功能:默认输出行数、单词、字节。
(2) 核心参数-l:仅统计文件行数;*通配符批量匹配所有.sh 文件。
6.数学运算
(1) 整数运算
① expr:运算符两侧必须空格,乘号 * 需转义\*。
② $[] / $(()):无需转义,脚本推荐写法,支持嵌套表达式。
(2) bc 浮点运算
① bash 仅支持整数,bc 实现小数计算;scale=N设置小数保留位数;交互模式用 quit 退出。
② 脚本调用格式:变量=$(echo "scale=N;运算式" | bc),scale 语句必须前置。
7.退出状态码
(1) 特殊变量$?:存储上一条命令执行状态,0 代表成功,1 通用错误,126 无权限,127 命令不存在。
(2) exit n:脚本自定义退出码,n 取值范围 0~255。
三、常用命令速查
1. #!/bin/bash:脚本首行解释器声明
2. echo -n:输出不换行
3. ;、|:多命令分隔、管道传参
4. wc -l:统计文件行数
5. expr、[]、(()):整数运算
6. bc scale:浮点精度控制
7. $():命令替换
8. $?:读取执行状态
9. exit n:自定义退出码
10.chmod u+x:添加脚本执行权限
四、知识点总结
1. .sh 脚本首行标注解释器,分号并行命令,管道传递输出。
2.脚本两种运行方式,./ 运行必须添加 x 执行权限。
3. echo 控制换行;变量分系统、自定义,$() 抓取命令输出生成文件。
4. wc 统计行数;整数多种运算写法,bc 完成小数计算。
5. $? 查看命令执行结果,exit 自定义脚本退出状态码。