Dies ist der Befehl „shell-quotep“, der beim kostenlosen Hosting-Anbieter OnWorks mit einer unserer zahlreichen kostenlosen Online-Workstations wie Ubuntu Online, Fedora Online, dem Windows-Online-Emulator oder dem MAC OS-Online-Emulator ausgeführt werden kann
PROGRAMM:
NAME/FUNKTION
Shell-Quote – Zitatargumente zur sicheren Verwendung, unverändert in einem Shell-Befehl
ZUSAMMENFASSUNG
Shell-Zitat [wechseln] ... arg...
BESCHREIBUNG
Shell-Zitat ermöglicht es Ihnen, beliebige Zeichenfolgen durch die Shell zu leiten, sodass dies nicht der Fall ist
durch die Shell verändert. Dadurch können Sie Befehle oder Dateien mit eingebettetem Leerraum verarbeiten
oder sicher Shell-Globing-Zeichen verwenden. Hier ein paar Beispiele.
Beispiele:
ssh Erhaltung args
Wenn Sie einen Remote-Befehl mit ssh ausführen, behält ssh die einzelnen Argumente nicht bei
erhält. Es verbindet sie einfach mit Leerzeichen und übergibt sie an „$SHELL -c“. Das
funktioniert nicht wie vorgesehen:
ssh host touch 'hi there' # schlägt fehl
Es werden 2 Dateien erstellt, hi und dort. Gehen Sie stattdessen folgendermaßen vor:
cmd=`shell-quote touch 'Hallo zusammen'`
SSH-Host „$cmd“
Dadurch erhalten Sie nur 1 Datei, hi dort.
Prozessdefinierung gefunden Möglichkeiten für das Ausgangssignal:
Normalerweise ist es nicht möglich, eine beliebige Liste von Dateien zu verarbeiten, die von ausgegeben werden gefunden mit
ein Shell-Skript. Alles, was Sie in $IFS eingeben, um die Ausgabe aufzuteilen, könnte legitim sein
im Namen einer Datei. Hier erfahren Sie, wie Sie dies tun können Shell-Zitat:
eval set -- `find -type f -print0 | xargs -0 Shell-Quote --`
debuggen Schale Skripte
Shell-Zitat ist besser als Echo zum Debuggen von Shell-Skripten.
debug() {
[ -z "$debug" ] || Shell-Zitat „debug:“ „$@“
}
Mit Echo Sie können den Unterschied zwischen „debug ‚foo bar‘“ und „debug foo bar“ nicht erkennen.
jedoch mit Shell-Zitat Sie können.
Speichern a Befehl für später
Shell-Zitat kann zum Erstellen eines Shell-Befehls zur späteren Ausführung verwendet werden. Sagen Sie, Sie wollen das
Benutzer, um Ihnen Schalter für einen Befehl geben zu können, den Sie ausführen möchten. Wenn nicht
Ich möchte, dass die Schalter von der Shell neu bewertet werden (was sonst normalerweise eine gute Idee ist).
es Dinge gibt, die der Benutzer nicht passieren kann), können Sie etwa Folgendes tun:
user_switches=
while [ $# != 0 ]
do
Fall x$1 in
x--pass-through)
[ $# -gt 1 ] || die „brauche ein Argument für 1 $“
user_switches="$user_switches "`shell-quote -- "$2"`
Schicht;;
# andere Schalter verarbeiten
esac
verschieben
erledigt
# später
eval „shell-quote some-command $user_switches my args“
OPTIONAL
--debuggen
Aktivieren Sie das Debuggen.
--help
Zeigen Sie die Nutzungsmeldung an und sterben Sie.
--Version
Zeigen Sie die Versionsnummer an und beenden Sie.
VERFÜGBARKEIT
Der Code ist unter der GNU GPL lizenziert. Überprüfen http://www.argon.org/~roderick/ oder CPAN für
aktualisierte Versionen.
Verwenden Sie Shell-Quotep online über die Dienste von onworks.net