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

Schreibe einen Kommentar