本文介绍了如何避免定界符扩大变量?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想利用ENV替换字符串创建一个脚本文件,但也希望prevent一些逃逸

 出口PLACEHOLDER1 =myPlaceholder1Value
出口PLACEHOLDER2 =myPlaceholder2Value
须藤/斌/苏-c猫<<&EOF GT; /etc/init.d/my-script
#!/斌/庆典

### BEGIN INIT INFO
#提供:我的脚本
#所需的启动:\\ $ remote_fs \\ $系统日志
#所需-停止:\\ $ remote_fs \\ $系统日志
#应该启动:\\ $网络\\ $时间
#应该-停止:\\ $网络\\ $时间
#在Default-Start:2 3 4 5
#默认-停止:0 1 6
#短说明:布拉布拉
#说明:喇嘛喇嘛递减

### END INIT INFO

myvariable_1 = TOTO $ PLACEHOLDER1
myvariable_2 = $蒂蒂PLACEHOLDER2
myvariable_final = \\dynamicvar = \\ $ {} myvariable_1,\\ $ {myvariable_2} \\
EOF

这导致这是不好的 myvariable_final 未逃脱,从初始化脚本依赖的一个取代($ remote_fs,$系统日志,$网络,$时间)

 #!/斌/庆典

### BEGIN INIT INFO
#提供:我的脚本
#所需的启动:
#所需-停止:
#应该启动:
#应该-停止:
#在Default-Start:2 3 4 5
#默认-停止:0 1 6
#短说明:布拉布拉
#说明:喇嘛喇嘛递减

### END INIT INFO

myvariable_1 = totomyPlaceholder1Value
myvariable_2 = titimyPlaceholder2Value
myvariable_final =dynamicvar =


如果我试图把一个反斜杠 \\ 的美元背后 $ ,我设法避免替代,但我得到一个不必要的反斜线 \\

 出口PLACEHOLDER1 =myPlaceholder1Value
出口PLACEHOLDER2 =myPlaceholder2Value
须藤/斌/苏-c猫<<&EOF GT; /etc/init.d/my-script
#!/斌/庆典

### BEGIN INIT INFO
#提供:我的脚本
#所需的启动:\\ $ \\ remote_fs \\ $ \\系统日志
#所需-停止:\\ $ remote_fs \\ $系统日志
#应该启动:\\ $网络\\ $时间
#应该-停止:\\ $网络\\ $时间
#在Default-Start:2 3 4 5
#默认-停止:0 1 6
#短说明:布拉布拉
#说明:喇嘛喇嘛递减

### END INIT INFO

myvariable_1 = TOTO $ PLACEHOLDER1
myvariable_2 = $蒂蒂PLACEHOLDER2
myvariable_final = \\dynamicvar = \\ $ \\ {} myvariable_1,\\ $ \\ {myvariable_2} \\
EOF

结果:

 #!/斌/庆典

### BEGIN INIT INFO
#提供:我的脚本
#所需的启动:$ \\ remote_fs $ \\系统日志
#所需-停止:
#应该启动:
#应该-停止:
#在Default-Start:2 3 4 5
#默认-停止:0 1 6
#短说明:布拉布拉
#说明:喇嘛喇嘛递减

### END INIT INFO

myvariable_1 = totomyPlaceholder1Value
myvariable_2 = titimyPlaceholder2Value
myvariable_final =dynamicvar = $ \\ {} myvariable_1,$ \\ {} myvariable_2


诚征/出席结果对子级一直

 #!/斌/庆典

### BEGIN INIT INFO
#提供:我的脚本
#所需的启动:$ remote_fs $系统日志
#所需-停止:$ remote_fs $系统日志
#应该启动:$ $网络时间
#应该-停止:$ $网络时间
#在Default-Start:2 3 4 5
#默认-停止:0 1 6
#短说明:布拉布拉
#说明:喇嘛喇嘛递减

### END INIT INFO

myvariable_1 = totomyPlaceholder1Value
myvariable_2 = titimyPlaceholder2Value
myvariable_final =dynamicvar = $ {} myvariable_1 $ {} myvariable_2

通过把报价解决各地在 EOF 下面,用反斜杠来控制逸出需要时

 出口PLACEHOLDER1 =myPlaceholder1Value
出口PLACEHOLDER2 =myPlaceholder2Value
须藤/斌/苏-c猫<<'EOF'> /etc/init.d/my-script
#!/斌/庆典

### BEGIN INIT INFO
#提供:我的脚本
#所需的启动:\\ $ remote_fs \\ $系统日志
#所需-停止:\\ $ remote_fs \\ $系统日志
#应该启动:\\ $网络\\ $时间
#应该-停止:\\ $网络\\ $时间
#在Default-Start:2 3 4 5
#默认-停止:0 1 6
#短说明:布拉布拉
#说明:喇嘛喇嘛递减

### END INIT INFO

myvariable_1 = TOTO $ PLACEHOLDER1
myvariable_2 = $蒂蒂PLACEHOLDER2
myvariable_final = \\dynamicvar = \\ $ {} myvariable_1,\\ $ {myvariable_2} \\
EOF


解决方案

只需使用'EOF'来prevent扩大变量:

 须藤/斌/苏-c猫<<'EOF'> /etc/init.d/my-script
                        ^^

男人庆典

这篇关于如何避免定界符扩大变量?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-22 23:27