shell脚本语法

脚本名称叫test.sh 入参三个: 1 2 3
运行test.sh 1 2 3后
$*为"1 2 3"(一起被引号包住)
$@为"1" "2" "3"(分别被包住)
$#为3(参数数量)





[root@jfht ~]#declare -a names 
[root@jfht ~]#names=Jack 
[root@jfht ~]#echo ${names[0]} 
Jack
[root@jfht ~]#names[1]=Bone 
[root@jfht ~]#echo ${names[1]} 
Bone
[root@jfht ~]#echo ${names} 
Jack
[root@jfht ~]#echo ${names[*]} 
Jack Bone
[root@jfht ~]#echo ${#names} 
4

直接引用names,相当于引用names[0] 
[root@jfht ~]#echo ${#names[*]} 
2

[root@jfht ~]#echo ${names[@]} 
Jack Bone
[root@jfht ~]#echo ${#names[@]} 
2

[root@jfht ~]#declare -p names   
declare -a names='([0]="Jack" [1]="Bone")'
[root@jfht ~]#


数组初始化:

 注释:${#BUILDOPT_TARGET_ALL[@]} = 0

BUILDOPT_TARGET_ALL[${#BUILDOPT_TARGET_ALL[@]}]=$BUILDOPT_TARGET_DTB 

注释:${#BUILDOPT_TARGET_ALL[@]} = 1
BUILDOPT_TARGET_ALL[${#BUILDOPT_TARGET_ALL[@]}]=$BUILDOPT_TARGET_FSBL   

注释:${#BUILDOPT_TARGET_ALL[@]} =2
BUILDOPT_TARGET_ALL[${#BUILDOPT_TARGET_ALL[@]}]=$BUILDOPT_TARGET_UBOOT
BUILDOPT_TARGET_ALL[${#BUILDOPT_TARGET_ALL[@]}]=$BUILDOPT_TARGET_TIFIRMWARE
BUILDOPT_TARGET_ALL[${#BUILDOPT_TARGET_ALL[@]}]=$BUILDOPT_TARGET_KERNEL 
# Rootfs *needs* to be last one in, since it includes some or all of the above targets.
BUILDOPT_TARGET_ALL[${#BUILDOPT_TARGET_ALL[@]}]=$BUILDOPT_TARGET_ROOTFS





$? 前一条语句的返回值。一般用来有 前后逻辑关系的语句

uname -a | grep 'x86_64' 管道+grep命令

cat是显示文件夹的命令,
这个大家都知道,
tac是cat的倒写,
意思也和它是相反的。
cat是从第一行显示到最后一行,
而tac是从最后一行显示到第一行,
rev 则是从最后一个字符显示到第一个字符。
  awk是一个强大的文本分析工具,在对文本文件的处理以及生成报表,awk是无可替代的。awk认为文本文件都是结构化的,它将每一个输入行定义为一 个记录,行中的每个字符串定义为一个域(段),域和域之间使用分割符分割。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值