小编Key*_*ger的帖子

bash 字符串替换的不一致行为

当我用一个子字符串替换另一个子字符串(如本文档中所述)打印变量时,它的行为正确:

stringZ='abc - 123'

echo $stringZ             # abc - 123

echo ${stringZ/ - /test}  # abctest123
Run Code Online (Sandbox Code Playgroud)

但是,如果我从文件名中获取字符串,则完全忽略替换:

for f in mp3/*; do

    stringZ=$(basename $f)

    echo $stringZ             # abc - 123.txt

    echo ${stringZ/ - /test}  # abc - 123.txt

done
Run Code Online (Sandbox Code Playgroud)

如何替换从文件名派生的变量中的子字符串?

bash filenames variable

1
推荐指数
1
解决办法
51
查看次数

标签 统计

bash ×1

filenames ×1

variable ×1