编写shell随记

变量命名

避免同系统变量(PATH)重名。

sed

记录在shell里执行 sed命令遇到的问题。

单引号问题

在命令行
sed -i 's/原内容/更新内容/g' file
shell语法里sed -i的参数无需单引号
sed -i s/原内容/更新内容/g file

正则表达式问题

建议把parttern和更新内容都以字符串的方式保存到变量里。当parttern和更新内容都包含空格(oracle_21="source.querywhere=where to_char(CREATE_TIME,'yyyymmdd') like '%$op_d%'"),
编写方式,用双引号包围 取值表达式 “$oracle_21”
sed -i s/$parttern_oracle/"$oracle_21"/g file

把文件内容组织到数组

  • wile
    局限,do块内的操作不会更新语句块外的同名变量。
	cat [path]|while read line 
	do
	done
  • for
	for var in `awk '{print $x}'
	do
	done

shell执行scp自动输入密码

expect

expect -c "
	spawn scp ps_order_92_data modeluser@10.0.180.39:/home/modeluser/dfgx/tmp/lzy/data/ps_order/					
	expect \"password:\"
	send \"$scp_pass\r\"
	expect eof
	"
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值