首页 > 解决方案 > sed 不能处理 bash 脚本中的变量;请求文件。简单的例子

问题描述

如果我在 bash 脚本中声明一个变量,然后尝试使用 sed 对其进行操作,我会不断收到错误消息。我尝试过在变量上使用双引号、反引号并避免使用单引号。这就是我本质上在做的事情。

使用多个参数调用我的脚本

./myScript.sh apples oranges ilike,apples,oranges,bananas

我的目标是使用 sed 将 $3 "," 替换为 " ",然后使用 wc -w 计算 $3 中有多少单词。

MyScript.sh

fruits="$3"
checkFruits= sed -i 's/,/ /g' <<< "$fruits"
echo $checkFruits

在终端运行脚本后的结果:

ilike,apples,oranges,bananas
sed: no input files

Ps 在无数次谷歌搜索、阅读建议和使用我的代码之后,我根本无法让这个简单的代码示例工作,我不确定为什么。在我越过这个块之前,我不能尝试实现 wc -w 。

标签: linuxbashvariablesunixsed

解决方案


你可以做

fruits="$3"
checkFruits="${3//,/ }"
# or 
echo "${3//,/ }"

推荐阅读