在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" "_" " "
谢谢
答案 0 :(得分:0)
你需要引用你的变量,因为它们是从用户输入填充的,可能有空格或元字符(如注释中指出的三元组):
echo ${name##*/} | grep -E -o "$re" | tr "$f" "$r"
如果您要删除_
,则可能需要使用-d
标记
echo ${name##*/} | grep -E -o $re | tr -d $f