Die betreffenden XML-Datei:xmlstarlet sel-Befehl in einem Bash-Skript - Löschen eines Tags
<properties>
<structure name="preference">
<structure name="cam1">
<property name="number" value="8"/>
<property name="name" value="eddi"/>
</structure>
<structure name="cam2">
<property name="number" value="2"/>
<property name="name" value="franck"/>
</structure>
</structure>
</properties>
In meinem Bash-Skript, ich möchte den Wert „8“ in einer Variablen einfügen es dann in einem Zustand verwendet werden (ob). Wenn der Wert gleich "8" ist, muss ich die Struktur "cam1" löschen.
Also, ich versuche, mit diesem Befehl zu verwenden xmlstarlet Werkzeug:
xmlstarlet sel -T -t -m '/properties/structure[@name="preference"]/structure[@name="cam1"]/property[@name="number"]/@value' -v . -n file.xml
Dies war der Befehl in einem Terminal zu verwenden, um den Wert, in dem Skript zu bekommen, schrieb ich es auf diese Weise:
camera=`xmlstarlet sel -T -t -m \'/properties/structure[@name=\"preference\"]/structure[@name=\"cam1\"]/property[@name=\"number\"]/@value\' -v . -n $1`
dann versuchen, die Variable zu drucken:
echo $camera
natürlich ich mein Ergebnis nicht haben "8" gedruckt, I denke ich habe ein Problem mit dem Backflash ... gibt es eine andere Möglichkeit, einfach die Struktur zu löschen?