Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
BASH变量占位符替换_Bash_Shell_Variables - Fatal编程技术网

BASH变量占位符替换

BASH变量占位符替换,bash,shell,variables,Bash,Shell,Variables,我有下面的脚本每说 #!/bin/bash #Define the variable placeholders NAME=[[NAME]] SAYS=[[SAYS]] echo "$NAME says $SAYS" 这是一个安装脚本,它坐在那里等待变量被替换,这样它就可以排队并与更多相同的脚本一起运行 如何替换控制脚本中的变量占位符?除非我遗漏了什么,否则这取决于您计划如何驱动它。一种可能性是创建一个驱动程序脚本,该脚本在调用脚本之前只需设置环境变量: file: so.sh #!/bin

我有下面的脚本每说

#!/bin/bash

#Define the variable placeholders
NAME=[[NAME]]
SAYS=[[SAYS]]

echo "$NAME says $SAYS"
这是一个安装脚本,它坐在那里等待变量被替换,这样它就可以排队并与更多相同的脚本一起运行


如何替换控制脚本中的变量占位符?

除非我遗漏了什么,否则这取决于您计划如何驱动它。一种可能性是创建一个驱动程序脚本,该脚本在调用脚本之前只需设置环境变量:

file: so.sh
#!/bin/bash
echo "$NAME says $SAYS"
然后在驱动程序脚本中:

$ NAME=dog SAYS=woof ./so.sh
dog says woof

除非我错过了什么,这取决于你打算怎么开车。一种可能性是创建一个驱动程序脚本,该脚本在调用脚本之前只需设置环境变量:

file: so.sh
#!/bin/bash
echo "$NAME says $SAYS"
然后在驱动程序脚本中:

$ NAME=dog SAYS=woof ./so.sh
dog says woof

像往常一样,您尝试过什么?显而易见的答案是sed,但是我只是想知道是否有更好的方法,当前的方法是使用EOF在控制脚本代码中将所有内容写入文件,all.sed、awk、python和perl都可以工作。另一个更好的方法是将变量放在该脚本源的单独文件中。一如既往,您尝试了什么?显而易见的答案是sed,但我只是想知道是否有更好的方法,当前的方法是使用EOF在控制脚本代码和all.sed、awk、python中将所有内容写入文件,perl将全部工作。另一个更好的方法是将变量放在这个脚本来源的单独文件中。@FredrikPihl:谢谢。我注意到你在评论中给出了正确的答案,而我正在键入相同的答案。@FredrikPihl:谢谢。我注意到你在评论中给出了正确的答案,而我正在输入相同的答案。