在bash脚本中用下划线替换连字符

Oct*_*xan 5 linux bash

尝试编写一个 bash 脚本,在其中的一部分中,我需要接受传递给它的任何参数,并用下划线替换连字符(如果存在)。

尝试执行以下操作

#!/usr/bin/env bash
string=$1
string=${string//-/_}
echo $string;
Run Code Online (Sandbox Code Playgroud)

它告诉我这条线string=${string//-/_}由于“替换错误”而失败,但它看起来应该这样做吗?我错过了什么吗?

Mat*_*ios 12

您的脚本没有任何问题,它应该可以在现代版本的 Bash 中运行。

但以防万一您可以将其简化为:

#!/bin/bash

echo "$1" | tr '-' '_'
Run Code Online (Sandbox Code Playgroud)

这是在参数替换不起作用的情况下(这似乎是您的情况)。

问候!