Ich habe eine Antwort in Bezug auf Befehle gesucht, die Variablen in der Shell zugewiesen wurden, aber ohne Erfolg. Mein Skript sucht nach einem Ordner mit dem Namen 2015may
, der eine Datei 4444444.xml
enthält. Der Befehl find /path/zipfolders -name "*${array[$((i+1))]}*" -exec grep -l "${array[$i]}" {} +
zeigt unter Verwendung dieser Parameter die folgende Ausgabe an: ["2015may"
, "44444444"
]: path/filename_2015may.zip
. Das Problem ist, dass dieser Befehl ''
zurückgibt, wenn er an $command
übergeben wird. Ich denke, dass ich einen Syntaxfehler habe, wenn ich es zu $command
assibning. Ich werde Ihre Hilfe bei der Lösung dieses Problems zu schätzen wissen.einen Befehl einer Variablen zuweisen, die Dateipfade enthält
Script
command=$(find /path/zipfolders -name "*${array[$((i+1))]}*" -exec grep -l "${array[$i]}" {} +)
echo "$command"
Tatsächliche Ausgabe
find /path/zipfolders -name "*${array[$((i+1))]}*" -exec grep -l "${array[$i]}" {} +
++ find /path/zipfolders -name '*2015may*' -exec grep -l 44444444 '{}' +
+ command=
+ echo ''
gewünschte Ausgabe
path/filename_2015may.zip
Sie brauchen 'zgrep' nicht, um innerhalb der' zip'-Dateien zu suchen. – anubhava