shell脚本常用语法

1.显示行号

vim test.sh

:set nu 显示行号

2.参数
echo $1
echo $2
echo "参数个数:$#"
echo "参数作为一个长字符串: $*"
echo "当时执行脚本PID: $$"
3.数组

数组只支持一维

#!/bin/bash

arr=(aaa bbb ccc ddd eee)
echo ${arr[@]}	#数组全部的值
echo ${arr[*]}	#同上    
echo ${arr[3]}	#下标3的值(下标从0开始)
echo ${#arr[@]}	#数组的个数

结果:

aaa bbb ccc ddd eee
aaa bbb ccc ddd eee
ddd

5

4.if判断
#!/bin/bash
A="aaa"
B="bbb"

if [ ${A} == ${B} ];
then
        echo "等于"
elif [ ${A} > ${B} ];
then 
echo "A > B"
else
        echo "不等于"
fi

结果:
不等于

5.循环

for 和 while

#!/bin/bash
J=0
for x in 1 2 3 4 5 6
do 
	echo $x
	let "J++"  #J自加1
done

echo ${J}	

for ((i=1;i<100;i++))
do 
	echo ${i}
done

x=1
while((x<10))
do
	echo ${x}
	let "x++"
done
6.分割

按逗号分割字符串变成数组
arr=( S T R ) 用 于 将 字 符 串 STR)用于将字符串 STR)STR分割到数组$arr ${arr[0]} a r r [ 1 ] . . . 分 别 存 储 分 割 后 的 数 组 第 12... 项 , {arr[1]} ... 分别存储分割后的数组第1 2 ... 项 , arr[1]...12...{arr[*]}存储整个数组。变量KaTeX parse error: Expected 'EOF', got '\n' at position 21: …着分隔符,我这里的默认分隔符是\̲n̲,然后我们将IFS设为逗号 "…{OLD_IFS})。

#!/bin/bash

STR="aaa,bbb,ccc,ddd"
OLD_IFS="$IFS"
IFS=","
arr=(${STR})
IFS="OLD_IFS"

for x in ${arr[*]}
do
	echo $x
done
7.awk

取数
创建一个文件

vim awk.log
a b c
1 2 3
4 5 6

默认空格作为分隔符

cat awk.log |awk '{print $1}'  #打印第一列
a
1
4
cat awk.log |awk '{print $1,$2}' #打印1 2列
a b
1 2
4 5
cat awk.log |awk 'NR==1'  #打印第一行
a b c
cat awk.log |awk 'NR>1'  #打印大于第一行
1 2 3
4 5 6
cat awk.log |awk 'NR==2 {print $1}' #取第二行的第一列
1

已逗号(,) 拆分列

cat awk.log |awk -F ',' '{print $1}'  #以逗号拆分并打印第一列
8.ded

替换
创建一个文件

vim sed.log
a b c
1 2 3
sed -i 's/a/aa' sed.log  #将文件里的a 替换成 aa
cat sed.log
aa b c
1 2 3
sed -i 's?aa?bb?' sed.log  #问号(?)也可以分割
bb b c
1 2 3
sed -i "s/b/e/g" sed.log  #全部的b替换成e   结尾的g代表全局的
ee e c
1 2 3
sed -i "s/^/www&/g" sed.log  #每行的头加上www
wwwee e c
www1 2 3
sed -i "s/$/|end/g" sed.log #每行尾拼接 |end
wwwee e c|end
www1 2 3|end
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值