shell脚本中执行命令的疑难浅析

本文分析了在shell脚本中执行命令时遇到的未知命令错误问题,通过探讨单引号、双引号以及eval的使用,揭示了命令存储在变量中导致的特殊字符解析问题。建议避免将命令存储在变量中,而是直接编写或使用函数来执行命令。
摘要由CSDN通过智能技术生成

shell脚本中执行命令的疑难浅析


问题场景描述

代码模式如下,目标是去除$all_xls_version_file中的在err_xls_list中出现的行。

#--sed_test.sh--
#!/bin/bash
...
...
for xls in $err_xls_list
do
    cmd="sed -i '/$xls/d'  $all_xls_version_file"
    echo $cmd
    $cmd
done

执行脚本报错:./sed_test.sh
sed: -e expression #1, char 1: unknown command: `''

很是困惑,为什么会有unknown command这种神奇的字符呢。而echo出来的sed命令是可以直接在shell终端直接执行成功的。查查究竟为何?!


思考与分析

1) sed -i '/$xls/d' $all_xls_version
被shell作为sed -i '/$xls/d' $all_

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值