#!/bin/bash Error_msg='' input='' no_null="Error: ${input} can't enter null value" input='num' Error_msg=$no_null echo "$Error_msg"
结果Error: can't enter null valuenum不能显示。如何更改输入值?谢谢你的建议。
Error: can't enter null value
w8ntj3qf1#
您可以在需要时使用可替换的模板。
input='' no_null="Error: <INPUT> can't enter null value" input='num' Error_msg="${no_null/<INPUT>/$input}" echo "$Error_msg"
注意,使用${variable/old/new}的变量替换是bash的扩展,它可能不存在于其他shell中。
${variable/old/new}
bash
rkue9o1l2#
您也可以使用printf在var中生成新内容:
printf
no_null="Error: %s can't enter null value" printf -v Error_msg "$no_null" "$input" echo "$Error_msg"
uqcuzwp83#
变量内变量值变化不使用“eval”的方法bash(在快速扩展的帮助下):
#!/bin/bash Error_msg='Error: ${input} can'"'t enter null value" input='num' echo "${Error_msg@P}"
zsh(std nested expansion):
#!/bin/zsh Error_msg='Error: ${input} can'"'t enter null value" input='num' echo "${(e)Error_msg}"
smtd7mpg4#
你可以把它变成一个函数:
$ Error_msg() { echo "Error: ${input} can't enter null value"; } $ input='' $ Error_msg Error: can't enter null value $ input='num' $ Error_msg Error: num can't enter null value
4条答案
按热度按时间w8ntj3qf1#
您可以在需要时使用可替换的模板。
注意,使用
${variable/old/new}
的变量替换是bash
的扩展,它可能不存在于其他shell中。rkue9o1l2#
您也可以使用
printf
在var中生成新内容:uqcuzwp83#
变量内变量值变化
不使用“eval”的方法
bash(在快速扩展的帮助下):
zsh(std nested expansion):
smtd7mpg4#
你可以把它变成一个函数: