linux - bash 中的字符串替换 - 错误替换错误

标签 linux bash

我是 bash 脚本的新手,但我不明白为什么它不起作用

#!/bin/bash
foo=foobarfoobar
echo ${foo//bar/baz}

第 3 行错误替换

最佳答案

该替换在 Bash 4.2.8 中工作正常(根据文档看起来很好)。

我最好的猜测是您实际上并没有使用 Bash - 您是如何调用脚本的?如果您正在执行 sh script.sh,您很可能正在使用 Dash 或类似的东西运行它(并且 Dash 确实在第 3 行给出了替换错误)。尝试使用 Bash 显式运行它 (bash script.sh)。

如果事实证明您实际上在使用 Dash,这里有一些关于差异以及如何返回使用 Bash(如果您愿意)的有用信息:https://wiki.ubuntu.com/DashAsBinSh

关于linux - bash 中的字符串替换 - 错误替换错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8960677/

相关文章:

c - 如何使用 execve 将参数(这是命令而不是文件名)传递给新 shell?

c++ - 串口通讯崩溃

bash - 在 bash 中,如何在双引号内扩展通配符?

ruby - ToolTwist Controller 在终端中运行 ruby​​ 文件 - fatal error : Unknown payload

c - 具有可变参数的函数。 open() 是如何工作的?

android - 在 ADB shell 中读取文件 '/proc/cpuinfo' 和使用 'cat/proc/cpuinfo' 返回不同的值

linux - 在linux下运行sh文件,为什么要运行./name.sh?

bash - 从目录中删除除某些文件之外的所有文件

c++ - 将bash参数传递给C++

linux - 追加到 bash 中的最后一行