在bash中连接printf中的替换

在bash中连接printf中的替换,bash,printf,Bash,Printf,我只想将gettext函数与字符串一起使用,该字符串稍后将替换为相应的值 printf "$(gettext "Package %b%s %bnot found%b.\n")" "$WC" "$pkg" "$CC" "$NC" 在这种情况下,我想首先解析gettext的函数,然后用右边的值替换它的值,该值可能是“Package%b%s%b找不到%b。\n” 问题是我不会使用函数gettext作为printf的第一个参数,但我不知道如何避免这个问题,因为我不理解这个问题,你会得到一个错误,你希望

我只想将gettext函数与字符串一起使用,该字符串稍后将替换为相应的值

printf "$(gettext "Package %b%s %bnot found%b.\n")" "$WC" "$pkg" "$CC" "$NC"
在这种情况下,我想首先解析gettext的函数,然后用右边的值替换它的值,该值可能是“Package%b%s%b找不到%b。\n”


问题是我不会使用函数gettext作为printf的第一个参数,但我不知道如何避免这个问题,因为我不理解这个问题,你会得到一个错误,你希望得到什么输出?我不会得到一个错误。事实上,它是有效的。但是printf不应该在它的第一个参数中使用变量,所以我要问一个可能的解决方案你怎么会这么想?是的,所以
%
s是故意的,所以它会按预期工作。在格式部分不使用vars的唯一原因是,如果您无法控制它将包含的内容,并且无法保证无意中的格式字符不会出现在其中。好的,我不相信禁用shellcheck警告,但您是对的!