shell错误 sed: can't read : No such file or directory

出现这样的问题主要是在于 空字符 造成的,情况分为3种

第一种是windows上的文件,在Linux上运行,这种可以通过查看文件编码确认,unix + utf-8 可以解决。

第二种是网页复制的shell代码,里边有些未知编码的空格字符,这种情况多次全局替换,可以解决,实在不行照着代码敲一遍总可以解决。

第三种是 sed命令使用了换行符 \ 且在换行符后加入了空格,例如:

value1=test1
value2=test2

sed -i -r \
	-e "s/(key1[ =]*).*/\1${value1}/g" \
	-e "s/(key2[ =]*).*/\1${value2}/g" \    
	/root/test.conf

这是一个修改配置文件的脚本,但是在倒数第二行的\后边有空格,续行符后的空格在这里被解释为了文件路径,所以找不到文件。

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值