Como adicionar linha ao arquivo usando o terminal

1

Eu sou novo no linux. Eu quero fazer um script automatizado para compilação de cm11 formar meu dispositivo e este é o meu script

#/bin/bash
cd cm11/.repo/
rm -rf local_manifests
mkdir local_manifests
cd local_manifests
touch kyleve.xml
echo "<?xml version="1.0" encoding="UTF-8"?>" >> kyleve.xml
echo "<manifest>" >> kyleve.xml
echo "<project name="Grace5921/device_samsung_kyleve" path="device/samsung/kyleve" revision="cm11" remote="github"/>" >> kyleve.xml
echo "<project name="Grace5921/vendor_samsung_kyleve" path="vendor/samsung/kyleve" revision="cm11" remote="github"/>" >> kyleve.xml
echo "<project name="Grace5921/kernel_samsung_kyleve" path="kernel/samsung/kyleve" revision="cm11" remote="github"/>" >> kyleve.xml
echo "</manifest>" >> kyleve.xml
cd
cd cm11
repo sync -j4
. build/envsetup.sh
lunch
brunch kyleve
echo "Done!"

Mas o comando echo adiciona essa linha ao kyleve.xml

<project name=Grace5921/device_samsung_kyleve path=device/samsung/kyleve revision=cm11 remote=github/>

mas eu preciso desta linha no meu arquivo de saída

<project name="Grace5921/device_samsung_kyleve" path="device/samsung/kyleve" revision="cm11" remote="github"/>

essas aspas duplas estão mexendo qual comando pode funcionar neste caso

    
por android lover 22.12.2015 / 21:09

2 respostas

3

Use aspas simples para criar a string literal:

echo '<project name="Grace5921/device_samsung_kyleve" path=\
  "device/samsung/kyleve" revision="cm11" remote="github"/>' >>kyleve.xml

Ou escape das aspas duplas relevantes com \ :

echo "<project name=\"Grace5921/device_samsung_kyleve\" \
  path=\"device/samsung/kyleve\" revision=\"cm11\" remote=\"github\"/>" >>kyleve.xml
    
por heemayl 22.12.2015 / 21:17
1

Você deve usar aspas simples ( ' ) em vez de aspas duplas ( " ) para cercar sua linha. Exemplo:

echo "myQuoted line "foobar" " >> test.txt
echo 'myQuoted line "foobar" ' >> test.txt

cat test.txt
myQuoted line foobar
myQuoted line "foobar"
    
por Wayne_Yux 22.12.2015 / 21:17