linux - 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 。
解决方案
你可以做
fruits="$3"
checkFruits="${3//,/ }"
# or
echo "${3//,/ }"
推荐阅读
- javascript - 使用 autoForm、Bootstrap 4 时,“form-control”类在哪里设置?
- javascript - 基于一组字符的全词匹配的 JavaScript 正则表达式
- xpath - 如何为逗号和空格(',')重新替换换行符(\n)XPATH 1.0
- ubuntu - 如何安装 Mono 5.18.0?
- python - 事件计数与数值序列的高斯图
- django - 在 django heroku 部署中,postgres 数据库出现错误:DATABASES 配置不正确。请提供名称值
- python - 如何将数据文件上传到 ACUMOS,然后从 Jupyter 笔记本中读取这些数据?
- bash - bash 代码如何在嵌套在第三个函数中时完全返回
- node.js - TypeError:在云函数中将循环结构转换为 JSON
- javascript - 当我调用 app.post 时,req.user 未定义