bash中的注意事项

1,[] 和 [[]] ,[] 不支持正则表达式,使用idea写shell的时候,它会给出一些代码提示,[]和[[]]区别,主要在shell if中使用_将将本将的博客-CSDN博客,有时候用[[]]替换[]会更好。

2,sshpass的远程执行命令参数中引用外部变量,要用双引号,使用单引号会出现报错提示,手动执行一遍发现单引号确实会报错,具体原因不知。

sshpass ssh ${ip} -o StrictHostKeyChecking=no "echo ${pub_str} >> /root/.ssh/authorized_keys"

3,可以使用read -a ,declare -a来新建一个数组,使用for in, for,while,seq来做遍历循环,

read -a all_cluster_ip <<< $(xms-cli -t ${token} host list | awk -F '|' '{if(NR>=4) print $8}')

4,shell有顺序,选择,循环,掌握这些基本的东西就能实现我们想要的效果

5,有些不常用命令的执行会出现莫名其妙的报错,要不停地改,试,百度,然后就可以了,特别是awk,写正则的时候感觉有点迷,因为不知道数据类型。

使用awk的if进行字符串比较的时候,普通字符串直接用$2=/str/,如果是true或false,要用$2=~/true/,如果是数字,就要$2==22。

如果使用 -v 传递参数,那有时候可以省略,比如 awk -v host_ip=${host_ip} -F '|' '{if($8~host_ip) print $5}'` ,加了'='反而不对。有时候需要是整数,可以使用awk的内置int()函数,使用'=='。

有问题就百度。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值