Linux之shell
undefinedundefined
shell 是一个命令解释器
系统变量 $HOME $PWD $USER $SHELL
自定义变量
1.基本语法
(1)定义变量: 变量=值
(2) 撤销变量: unset 变量
(3)声明静态变量: readonly 变量,注意:不能unset
2.变量定义规则
(1)变量名称可以由字母、数字和下划线组成,但不能以数字开头,环境变量名建议英文大写
(2)等号两侧不能有空格
(3)在bash中,变量默认类型都是字符串类型,无法直接进行数值运算
(4)变量的值如果有空格,需要使用双引号或单引号括起来
(5)export 变量名 可把变量提升为全局环境变量,可供其他shell程序使用
特殊变量
$n (功能描述: n为数字 ,$0代表脚本名称,$1-$9 代表第一到第九个参数,十以上的参数需要使用大括号包含,如${10} )
$# (功能描述: 获取所有输入参数的个数,常用于循环)
$* (功能描述: 这个变量代表命令行中所有的参数,$* 把所有参数看成一个整体)
$@ (功能描述: 这个变量也代表命令行中所有的参数,不过$@ 把每个参数区别对待)
$? (功能描述: 最后一次执行的命令的返回状态。如果这个变量的值为0,证明上一个命令正确执行;
如果这个变量的值为非0(具体是哪个数字,由命令自己来决定),则证明上一个命令执行不正确了。)
运算符
(1) "$((运算式))" 或 "$[运算式]"
(2) expr + , -, \* , /, % 加,减,乘,除,取余
注意:expr 运算符简要有空格
常用判断条件
if 判断
read
系统函数
自定义函数
示例:
SHELL 工具
cut
-f 列号,提取第几列
-d 分隔符,按照指定分隔符分割列
sed
awk
sort
shell 子串的花式用法
特殊shell 扩展变量
示例:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | [root@centos068 ~] # echo $name [root@centos068 ~] # echo $word [root@centos068 ~] # word=222 [root@centos068 ~] # echo $word 222 [root@centos068 ~] # abc=${name:-word} [root@centos068 ~] # echo $abc word [root@centos068 ~] # echo $name [root@centos068 ~] # abd=${name:=word} [root@centos068 ~] # echo $abd word [root@centos068 ~] # echo $name word [root@centos068 ~] # abf=${name:?word} [root@centos068 ~] # echo $abf word [root@centos068 ~] # echo $name1 [root@centos068 ~] # abj=${name1:?word} - bash : name1: word [root@centos068 ~] # echo $name1 [root@centos068 ~] # echo $name word [root@centos068 ~] # echo $word 222 [root@centos068 ~] # abe=${name1:+word} [root@centos068 ~] # echo $abe [root@centos068 ~] # abh=${name:+word} [root@centos068 ~] # echo $abh word [root@centos068 ~] # |
·
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具