Ich habe einen Find-Befehl als Teil eines Skripts und exportiere die Werte in die Variable wie unten
export value1="'find /app/new1 -name '*service.sh*'"
Nach dem Testen wurde mir klar, dass das Verzeichnis auf einigen Hosts wie unten dargestellt unterschiedlich ist.
/sbclocal/app/new1
Wie überprüfe ich beides und übergebe es an denselben Wert?
wenn ich dieses Skript finde und es später mit Stopp oder Start ausführe.
Antwort1
Wenn ich die Frage richtig verstehe, gibt es mehrere Möglichkeiten, einen gewünschten Zustand zu erreichen.
find
unterstützt die Angabe mehrerer Pfade. Es ist also keine große Sache, es so auszudrücken:export value1="$(find /app/new1 /sbclocal/app/new1 -name '*service.sh*')"
Dies erzeugt eine Fehlermeldung, wenn eines der Verzeichnisse fehlt, hat aber (je nach Ihrer Methode) möglicherweise keine generellen Auswirkungen auf Ihr Skript.
Übergeben Sie zwei Befehle an den Wert:
export value1="$(find /app/new1 -name '*service.sh*' && find /sbclocal/app/new1 -name '*service.sh*')"
Diese Option liefert eine Antwort, die Ihrer Frage näher kommt (Übergeben von zwei Befehlen an dieselbe Variable), sieht aber nicht wie eine bessere Lösung aus.
Vorgehensweise mit Schecks:
export value1="$(for dir in /app/new1 /sbclocal/app/new1; do [ -d $dir ] && find $dir -name '*service.sh*'; done)"