Shell脚本编程核心知识点速查

一、核心知识点梳理

1. 多命令执行与脚本创建

多命令串联:

多个命令可在同一行用分号(;)分隔依次执行(如date ; who),或用管道符(|)将前一个命令的输出作为后一个命令的输入(如date | who,仅显示最终结果)。

脚本创建规范:

以.sh为后缀(如test.sh),第一行必须指定 shell 解释器:#!/bin/bash(#!用于告诉系统脚本的运行环境)。

可包含注释(#开头),用于说明脚本功能。

2. 脚本执行方式

执行方式 操作步骤 注意事项

bash 命令执行 bash test.sh 无需脚本权限,直接调用 bash 解释器

路径直接执行 ./test.sh(相对路径)或/home/user/test.sh(绝对路径) 需先赋予可执行权限:chmod u+x test.sh

3. 输出与变量使用

echo 命令:

用于在脚本中输出文本消息,格式:echo "消息内容"。

-n参数可取消自动换行,使文本与后续命令输出在同一行(如echo -n "当前时间:"; date)。

变量操作:

系统环境变量:直接通过$变量名引用(如$USER显示当前用户名、$UID显示用户 ID、$HOME显示家目录)。

用户自定义变量:

定义规则:变量名由字母、数字、下划线组成(长度≤20,区分大小写),赋值时等号两侧无空格(如name="Tom")。

引用方式:$变量名(如echo "姓名:$name")。

命令替换:将命令输出赋给变量,两种方式:

反引号:out_date=date``

$()格式:today=$(date +%y%m%d)(推荐,更易读)

4. 文件内容计数(wc 命令)

功能:统计文本的行数、词数、字节数,默认输出 “行数 词数 字节数 文件名”。

常用参数:

-l:仅统计行数(如wc -l test.sh显示脚本的行数)。

通配符批量统计:wc -l *.sh统计当前目录下所有.sh脚本的行数。

5. 数学运算方法

expr 命令 expr 数字1 运算符 数字2 需注意运算符与数字间的空格,部分符号需转义(如*需写为\*),仅支持整数运算(如expr 100 \* 5)。

$[] 格式 $[ 表达式 ] 无需空格和转义符,支持变量运算(如result=$[100*(50-45)])。

$(()) 格式 $(( 表达式 )) 与$[]功能一致,更推荐(如result=$((100/52)),结果为整数除法)。

bc 计算器 variable=$(echo "scale=小数位数; 表达式" | bc) 支持浮点数运算,scale用于设置小数位数(如var=$(echo "scale=2; 3.44/5" | bc),结果为0.69)。

6. 退出状态码

含义:脚本中每个命令执行完毕后会返回一个 0~255 的整数(退出状态码),用于表示执行结果。

关键变量与命令:

$?:保存上一个命令的退出状态码(0 表示成功,非 0 表示失败)。

exit 状态码:在脚本末尾手动指定退出状态码(如exit 5,脚本结束后echo $?会显示 5)。

常见状态码:

0:命令成功执行

1:一般性错误

127:命令未找到

二、命令与参数总结

#!/bin/bash 指定脚本解释器 脚本第一行必写

chmod u+x 脚本名 赋予脚本可执行权限 chmod u+x test.sh

echo -n 输出文本不换行 echo -n "时间:"; date

$(命令) 命令替换(将输出赋给变量) today=$(date +%y%m%d)

wc -l 文件名 统计文件行数 wc -l test.sh

bc 浮点数运算工具 echo "scale=2; 5/3" | bc返回1.66

exit N 指定脚本退出状态码 exit 0(表示成功退出)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值