我从我想要实现的内容中获取了一段简化代码。本质上,位置变量取自配置文件,格式始终为/xyz/$id/abc
,其中$id
表示服务器上运行的应用程序。
代码如下:
#!/bin/bash
echo "Enter the ID"
read id
echo
echo "Enter the location :"
read location
echo
echo "${id}"
echo "${location}"
所以当我运行代码时:
$ ./test.sh
Enter the ID
xx
Enter the location :
/data/$id/app
xx
/data/$id/app
我想要实现的是第二个变量根据上面的输入打印/data/xx/app
。
提前感谢您的帮助。
答案 0 :(得分:1)
您可以使用简单的pattern replacement:
cc
答案 1 :(得分:-1)
eval
应该有所帮助:
$ id='123'
$ loc='/data/$id/app'
$ echo "$loc"
/data/$id/app
$ eval echo "$loc"
/data/123/app
请注意,eval
会执行或扩展所有内容,就像您自己输入$loc
的内容一样。所以你应该注意它的内容。