Shell – Informationen zur Verwendung der $-Variablen in den Zeichenfolgen „' und „' in Linux-Skripten
女神的闺蜜爱上我
女神的闺蜜爱上我 2017-07-03 11:41:33
0
2
802

Über das Problem der Variablen $foo in „“-Anführungszeichen unter Linux

Jetzt haben wir einen eingehenden Parameter von der Befehlszeile erhalten,假设的值为666
想把用在sed -i中,假设指令为sed -i “s/foo//g” file.txt
Jetzt müssen wir eine ant build.xml schreiben (kann als Skript verstanden werden) und den sed-Befehl implementieren:

<exec executable="/usr/bin/sed" dir="common/self_cleaning_builder">
    <arg line="#我需要的那条sed指令"/>
</exec>

我应该如何把这个sed指令放入arg标签下的line=“”中,才能使得我放进去的指令可以被正确读出且实现功能?引号太多了,怎么写都实现不了功能。

Was ich geschrieben habe ist:

<exec executable="/usr/bin/sed" dir="/common">
    <arg line='-i -r "s/foo//g" file.txt'/>
</exec>

und

<property name="regex" value="s/input//g"/>
<exec executable="/usr/bin/sed" dir="/common">
    <arg line="-i -r $regex file.txt"/>
</exec>

Aber keiner von ihnen kann die von mir gewünschte Funktion erfüllen.

Nachdem ich einige Beiträge zu „“ und „“ gelesen habe, weiß ich immer noch nicht, wie ich dieses Problem lösen kann. Ich hoffe, Sie können mir einen Rat geben

女神的闺蜜爱上我
女神的闺蜜爱上我

Antworte allen(2)
曾经蜡笔没有小新

自己写一个sedwrapper就行,你这样直接使用sed会首先获取到参数,并且
认为那是一个文件,$1就起不了作用了

Ty80

$1在shell脚本里是输入参数,但在ant脚本里不是,另外你在命令行调用ant的时候,不可能按位置传参数,必须要指定参数名:

ant <your target> -Darg1=value1

在ant脚本里使用${arg1}来访问变量:

<arg line="-i -r 's/foo/${arg1}/g' file.txt"/>
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!