[英]bash, substitute part of variable by another variable
#!/bin/bash SUNDAY_MENU=BREAD MONDAY_MENU=APPLES TODAY=MONDAY ECHO "I want ${${TODAY}_MENU}" # does not work, bad substitution ECHO "I want ${`echo $TODAY`_MENU}" # does not work, bad substitution
Any Ideas ? 有任何想法吗 ?
Use variable indirection like this: 像这样使用变量间接 :
varname=${TODAY}_MENU
echo ${!varname}
If you are using Bash 4 or later, however, you are probably better off using an associative array : 但是,如果您使用的是Bash 4或更高版本,则最好使用关联数组 :
menu=([sunday]=bread [monday]=apples)
echo ${menu[$TODAY]}
I use eval function 我使用eval函数
#!/bin/bash
SUNDAY_MENU=BREAD
MONDAY_MENU=APPLES
TODAY=MONDAY
eval TODAY_MENU=\$\{${TODAY}_MENU\}
echo "I want ${TODAY_MENU}"
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.