shell - À propos de l'utilisation de la variable $ dans les chaînes "" et "" dans les scripts Linux
女神的闺蜜爱上我
女神的闺蜜爱上我 2017-07-03 11:41:33
0
2
803

À propos du problème de la variable $foo entre guillemets "" sous Linux

Maintenant, nous avons obtenu un paramètre entrant de la ligne de commande,假设的值为666
想把用在sed -i中,假设指令为sed -i “s/foo//g” file.txt
Maintenant, nous devons écrire un ant build.xml (peut être compris comme un script), et nous devons implémenter la commande sed :

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

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

Ce que j'ai écrit est :

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

et

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

Mais aucun d’entre eux ne peut réaliser la fonction que je souhaite.

Après avoir lu quelques articles sur "" et "", je ne sais toujours pas comment résoudre ce problème, j'espère que vous pourrez me donner quelques conseils

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

répondre à tous(2)
曾经蜡笔没有小新

En écrire un vous-mêmesedwrapper就行,你这样直接使用sed会首先获取到参数,并且
认为那是一个文件, ne fonctionnera pas

Ty80

$1 est un paramètre d'entrée dans le script shell, mais pas dans le script ant. De plus, lorsque vous appelez ant depuis la ligne de commande, il est impossible de passer les paramètres par position. Vous devez spécifier le nom du paramètre :

.
ant <your target> -Darg1=value1

Utilisez ${arg1} pour accéder aux variables dans le script fourmi :

<arg line="-i -r 's/foo/${arg1}/g' file.txt"/>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!