Wie man eine variable im Befehl suchen?
Bin ich Total neu in der bash also sorry, wenn meine Frage nicht gut formatiert oder nicht sinnvoll ist 🙂
Ich versuche, etwas zu tun:
#..................... previous code where F is defining
filename="$F";
echo "$filename";
find . -name ????? | while read fname; do
echo "$fname";
done;
Möchte ich meine variable $filename im Befehl suchen (anstelle von ????), aber ich weiß nicht, wie. Ich füge einen festen Wert gibt es für Testzwecke, zum Beispiel "abc.txt" (die existiert und ist gespeichert in meine variable), es funktioniert auch, ich weiß nur nicht, wie die variable in den Befehl suchen.
Etwas wie
find . -name '$filename.txt' | while read fname;
UPDATE: (ich habe 2 Dateien (.xml-und .txt) mit dem gleichen Namen in-Ordner)
find . -type f -name \*.xml | while read F;
do something || echo $F;
cat "$F";
#name without extenssion
filename="${F%.*}";
echo "$filename";
find . -name "$filename.txt" | while read fname; do
echo "$fname";
done;
done;
find . -name "$filename.txt"
sollte die Arbeit mit Variablen in doppelten Anführungszeichen.richtig ist, Sie müssen doppelte Anführungszeichen verwenden, um die Variablen zu erweitern.
Was ist der Wert von
$F
und was ist der name der Datei, die Sie suchen?Ich denke, dass es ein problem irgendwo anders, ich weiß nicht, diese Sprache, ich brauche nur ein paar Befehle ausführen, mein code sieht ungefähr so aus -> ich habe code zu AKTUALISIEREN, meine Frage an Sie formatiert werden.
InformationsquelleAutor nicusska | 2015-08-21
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dies funktionieren wird:
Obwohl Sie könnte genauso gut tun:
Doppelte Anführungszeichen oder ohne Anführungszeichen) sind notwendig für variable expansion. Einfache Anführungszeichen werden nicht funktionieren.
Danke @EricRenouf habe ich bearbeitet die Antwort.
Müssen Sie auch doppelte Anführungszeichen verwenden, wenn die variable mit ''. finden . -name "${DB_NAME}some_text*.sh" finden funktioniert nicht mit single quotes und nicht wieder Fehler.
InformationsquelleAutor ryanpcmcquen