Linux之Bash学习笔记(一)

本文详细介绍了Shell脚本的基础知识与高级技巧,包括变量赋值规则、字符串操作、算术运算、条件判断及中断命令等。通过实例解析,帮助读者掌握Shell脚本的编写与调试。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、变量赋值左右两边不能有空格,例如:a=mytest

2、如果要将变量与其他字符连接需要用到{},例如echo $a_1,此处a_1系统识别为:变量名

如果要输出mytest_1,则需要这样输出echo ${a}_1

3、单引号与双引号的区别,单引号中间的内容会被系统视为字符串,例如:echo 'this is $a‘

如果使用双引号,则引号内的$a会被视为一个变量,echo "this is $a"对应输出:this is my test

如果要使用单引号拼接字符串则需要用一对单引号将变量包起来echo '   this is '$a'   '

4、反引号,可以将输出结果作为变量输出例如f=`ls`,echo $f,则会输出与单独输入ls的结果

此处f变量为一个字符串,echo my dir is `ls`,首先执行`ls`,然后执行echo将字符串拼接起来

echo `ls` 与 echo $(ls)结果一致的,但是$()不是每个linux系统都支持

5、数组,将一组数据以()则为一个数组,例如上面f=(`ls`),则将获取到的ls输出结果作为数组保存在f变量中

此时echo $f 默认会输出第一个文件或文件夹的名字,如果要取到后续的值则能以echo ${f[1]},

如果要输出所有数组内数据:echo ${f[*]},获取数组变量个数echo ${#f[*]}

6、(())可以进行运算,例如echo $((2+3))>>>>5,a=6;((a=a*8));echo $a 用分号可在同行输入多个命令或变量

7、echo $?可以对上一个指令进行判断输出,如果上个指令成功则会得到0,如果为失败则结果为非0

8、echo 只支持整型数字计算,浮点数计算需用awk ‘BEGIN{print 2/9}’

9、字符串操作a="Hello from test",echo ${a:6}表示从第六个字符开始输出得到结果:from test

echo ${a:6:7}从第六个字符开始取出7个字符输出得到结果:from te

获取字符串长度 echo ${#a}

从头截取字符串echo "${a#He}" 去掉He输出剩余字符串结果:llo from test

echo "${a#*o}"从头开始匹配到第一个o时把包含o之前的字符去掉后输出结果:空格from test,

如果没有双引号将没有第一个空格

echo "${a##*o}"从头开始匹配到最后一个o时把包含o之前的字符去掉后输出结果:m test

从尾匹配截取字符串echo "${a%est}“ 去掉尾部的est输出结果:Hello from t

echo "${a%o*}"从头开始匹配到第一个o时把包含o之前的字符去掉后输出结果:Hello fr

echo "${a%%o*}"从头开始匹配到最后一个o时把包含o之前的字符去掉后输出结果:Hell

字符串替换 echo “{a/from/to}"将from替换成to

10、中断命令,Ctrl+C

11、算术判断[ 2 -eq 2 ];ehco $?判断是否等于,必须放在一对[],首尾必须有一个空格.

-eq 等于 -ne 不等于 -ge 大于等于 -le 小于等于 -gt 大于 -lt 小于

[ 2 -ge 1 -a 3 -ge 4 ];2大于等于1并且3大于等于4,[ -a ] 同等于 [[ && ]] 同等于 and

[ 2 -ge 1 -o 3 -ge 4 ];2大于等于1并且3大于等于4,[ -o ]同等于 [[ || ]] 同等于 or

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值