在bash中,用固定字符替换字符串的每个字符("blank out"一个字符串)
In bash, replace each character of a string with a fixed character ("blank out" a string)
MWE:
caption()
{
echo "$@"
echo "$@" | sed 's/./-/g' # -> SC2001
}
caption "$@"
我想使用参数扩展来消除 shellcheck 错误。我的最佳想法是使用 echo "${@//?/-}"
,但这并不能替代空格。
有什么想法吗?
您可以使用$*
将其保存在局部变量中:
caption() {
local s="$*"
printf '%s\n' "$s" "${s//?/-}"
}
测试:
caption 'SC 2001' foo bar
SC 2001 foo bar
---------------
MWE:
caption()
{
echo "$@"
echo "$@" | sed 's/./-/g' # -> SC2001
}
caption "$@"
我想使用参数扩展来消除 shellcheck 错误。我的最佳想法是使用 echo "${@//?/-}"
,但这并不能替代空格。
有什么想法吗?
您可以使用$*
将其保存在局部变量中:
caption() {
local s="$*"
printf '%s\n' "$s" "${s//?/-}"
}
测试:
caption 'SC 2001' foo bar
SC 2001 foo bar
---------------