cari

Rumah  >  Soal Jawab  >  teks badan

shell - Mengenai penggunaan $ pembolehubah dalam rentetan "" dan '' dalam skrip linux

Mengenai masalah pembolehubah $foo dalam petikan "" dalam Linux

Sekarang kita telah memperoleh parameter masuk daripada baris arahan,假设的值为666
想把用在sed -i中,假设指令为sed -i “s/foo//g” file.txt
Sekarang kita perlu menulis ant build.xml (boleh difahami sebagai skrip), dan kita perlu melaksanakan arahan sed:

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

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

Apa yang saya tulis ialah:

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

dan

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

Tetapi tiada satu pun daripada mereka boleh mencapai fungsi yang saya mahukan.

Selepas membaca beberapa catatan tentang "" dan '", saya masih tidak tahu bagaimana untuk menyelesaikan masalah ini, saya harap anda boleh memberi saya nasihat

女神的闺蜜爱上我女神的闺蜜爱上我2736 hari yang lalu894

membalas semua(2)saya akan balas

  • 曾经蜡笔没有小新

    曾经蜡笔没有小新2017-07-03 11:43:33

    Menulis sendirisedwrapper就行,你这样直接使用sed会首先获取到参数,并且
    认为那是一个文件, tidak akan berkesan

    balas
    0
  • PHP中文网

    PHP中文网2017-07-03 11:43:33

    $1 ialah parameter input dalam skrip shell, tetapi bukan dalam skrip semut Selain itu, apabila anda memanggil semut dari baris arahan, adalah mustahil untuk menghantar parameter mengikut kedudukan Anda mesti menentukan nama parameter:

    ant <your target> -Darg1=value1

    Gunakan ${arg1} untuk mengakses pembolehubah dalam skrip semut:

    <arg line="-i -r 's/foo/${arg1}/g' file.txt"/>

    balas
    0
  • Batalbalas