linux 如何在变量内部更改变量值

6yoyoihd  于 2023-06-21  发布在  Linux
关注(0)|答案(4)|浏览(174)
#!/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 value
num不能显示。如何更改输入值?谢谢你的建议。

w8ntj3qf

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中。

rkue9o1l

rkue9o1l2#

您也可以使用printf在var中生成新内容:

no_null="Error: %s can't enter null value"
printf -v Error_msg "$no_null" "$input"
echo "$Error_msg"
uqcuzwp8

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}"
smtd7mpg

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

相关问题