在shell脚本中,我想在使用tr但收到错误的函数中用空格替换所有下划线字符,因为我不知道如何将变量中的空格传递给tr
function sanitizeDirName() {
local name=$1
local f=$2
local r=$3
echo ${name##*/} | grep -E -o $re | tr $f $r
}
sanitizeDirName "~/test_1" "_" " "
感谢
您需要引用您的变量,因为它们是根据用户输入填充的,并且可能有空格或元字符(正如三元组在注释中指出的那样):
echo ${name##*/} | grep -E -o "$re" | tr "$f" "$r"
如果要删除_
,则可能需要使用-d
标志
echo ${name##*/} | grep -E -o $re | tr -d $f