常用的Bash编程知识点

随便记录一些常用的bash编程知识点,比较杂乱,想到什么记录什么。

1.特殊字符

字符说明
"(双引号)部分引用,不阻断字符串中的变量
’(单引用)全引用,会阻断字符串中所有的特殊字符
`命令替换符,用于执行命令,与$(ls -lrt)功能类似
( )

命令组,在子shell中执行

数组初始化,元素写在括号内,空格分隔

{ }命令组,在当前shell中执行,最后一条语句要接分号
[ ]

条件测试,条件表达式放在括号内

通过数组下标取元素

[[ ]]模糊匹配 [[ $res =~ .*([[:digit:]]+)test ]]
&后台运行命令
;;case终止符

2.内置参数

字符说明
$?上一条命令返回值,大部分命令执行成功会返回 0,失败返回 1

$$

当前脚本进程号
$#参数个数
$@

参数列表,可以当做数组使用

$0文件名本身

3.条件判断

#case1
if [ $a = "case1" ]; then
    echo "equals"
else
    echo "not equals"
fi


#case2
[ $b -eq 3 ] && echo "b equals 3" && exit
[ $b -ne 3 ] || { echo "b equals 3" && exit; }


# and / or
[ $a -eq 3 -a $b = "hello" ] && echo "a==3 and b==hello"

# 模糊匹配
if [[ $a = master* ]] && echo "a starts with master"

(1) 整数比较运算: -eq, -gt, -lt, -ge, -le

(2) 字符串比较运算符: >, >=, <, <=, !=, -z, -n

(3) 逻辑运算: -a, -o , !

(4) 可以使用[[ ]] 做模糊匹配

4.循环与分支

#for循环
#bash脚本中,关键字(或者命令)如果作为表达式的开头,并且如果想再同一行再写一个新的表达式的话,那么必须使用分号结束上一个表达式。 do如果换行的话,for语句末尾的分号可以去掉。 if/then也一致
ips=(ip1 ip2 ip3)
for ip in ips do
    echo "ip:$ip"
done


#while循环
while read line
do
    echo "line:$line"
done < ips.txt


#case分支
case $color in
    "red")
        echo "the color is red";
        ;;
    "white")
        echo "the color is white";
        ;;
     *)
        echo "the color is $color";
        ;;
esac

5.字符串处理

str=abcABC123ABCabc

# 长度
echo  "${str} len: ${#str}"


#提取子串
echo  "get substring: ${str:3}"
echo  "get substring: ${str:3:11}"
echo  "get substring: `expr match ${str} '.*ABC[1−3]...*'`"
echo  "get substring: `expr "${str}" : '.*
ABC[1−3]..
.*'`"

#子串替换
echo  "replace substring: ${str/ABC/789}"
echo  "replace substring: ${str//ABC/789}"
echo  "replace substring: ${str/#abc/789}"
echo  "replace substring: ${str/%abc/789}"

var=http://www.aaa.com/123.htm.
#  #号截取,删除左边保留右边,输出 -> www.aaa.com/123.htm
echo ${var#*//}

#  ##号截取,删除左边字符,保留右边字符。


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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值