linux - sed 无法处理 bash 脚本中的变量;请求一个文件。简单例子

标签 linux bash variables unix sed

如果我在 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

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

最佳答案

你可以做到

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

关于linux - sed 无法处理 bash 脚本中的变量;请求一个文件。简单例子,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53233844/

相关文章:

android - 无法 setprop - avc 被拒绝?

bash - 来自文件的匹配模式在 bash 中返回多个相同的输出

PHP脚本被变量中断

bash - 奇怪的字符 docker exec

linux - 为什么在 bash 脚本中第二次使用 "$?"时赋值语句不起作用

variables - 带变量的 Excel VBA 公式

php - 再次使用乐透程序

linux - 我可以在共享主机服务器上安装 git 吗?

c - linux中的signal,int 0x80是谁调用的?

mysql - 我如何更改 MySQL 5.6 中 pid 文件的路径