英文:
How to change variable value inside the variable
问题
#!/bin/bash
错误消息=''
输入=''
不为空="错误:${输入} 不能输入空值"
输入='num'
错误消息=$不为空
echo "$错误消息"
结果
错误: 不能输入空值
num 不能显示。如何更改输入值?
提前致谢。
英文:
#!/bin/bash
Error_msg=''
input=''
no_null="Error: ${input} can't enter null value"
input='num'
Error_msg=$no_null
echo "$Error_msg"
result
Error: can't enter null value
num can't show. How to change the input value?
Thanks in advise.
答案1
得分: 2
你可以在需要时使用一个模板进行替换。
input=''
no_null="错误: <INPUT> 不能输入空值"
input='num'
Error_msg="${no_null/<INPUT>/$input}"
echo "$Error_msg"
请注意,使用${variable/old/new}
进行变量替换是bash
的扩展功能,可能在其他shell中不存在。
英文:
You can use a template that you substitute when you need it.
input=''
no_null="Error: <INPUT> can't enter null value"
input='num'
Error_msg="${no_null/<INPUT>/$input}"
echo "$Error_msg"
Note that variable substitution with ${variable/old/new}
is a bash
extension, it may not exist in other shells.
答案2
得分: 1
你可以使用 printf
来生成变量中的新内容:
no_null="错误:不能输入空值 %s"
printf -v Error_msg "$no_null" "$input"
echo "$Error_msg"
英文:
You can also use printf
to generate new content in var:
no_null="Error: %s can't enter null value"
printf -v Error_msg "$no_null" "$input"
echo "$Error_msg"
答案3
得分: 0
> change-variable-value-inside-the-variable
不使用 'eval' 的方法
bash(借助提示展开):
#!/bin/bash
Error_msg='Error: ${input} 不能输入空值'
input='num'
echo "${Error_msg@P}"
zsh(标准嵌套展开):
#!/bin/zsh
Error_msg='Error: ${input} 不能输入空值'
input='num'
echo "${(e)Error_msg}"
英文:
> change-variable-value-inside-the-variable
Ways of not using 'eval'
bash (with help of prompt expansion):
#!/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}"
答案4
得分: 0
You could make it a function:
$ Error_msg() { echo "错误:${input} 不能输入空值"; }
$ input=''
$ Error_msg
错误: 不能输入空值
$ input='num'
$ Error_msg
错误:num 不能输入空值
英文:
You could make it a function:
$ 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
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论