0
ich die Ausgabe von fswatch auf mehrere Befehle in einem Shell-Skript mit folgenden Technik Rohr versuchen:Rohr fswatch Ausgang in einen Shell-Skript
$ fswatch -0 [opts] [paths] | xargs -0 -n 1 -I {} [command]
Statt [Befehl] ich den Shell-Skript Pfad setzen. Hier ist meine Befehlszeile:
fswatch -0 -Ie ".*\.*$" -i ".*\.mp4$" ~/Desktop/encoding\ tests | xargs -0 -n 1 -I {} ~/Desktop/s3cmd.sh
Das Skript folgt:
#!/bin/sh
terminal-notifier -message "s3cmd Upload {}" ;
s3cmd sync --acl-public -m video/mp4 --add-header=Cache-Control:public,max-age=2052000 {} s3://saltanat-test/ &&
terminal-notifier -message "s3cmd Upload of {} done"
Sorry, ich bin nicht mit Shell-Skripten erlebt. Wie kann ich die fswatch-Ausgabe in das Skript leiten?
Vielen Dank.
Die '{}' werden in einem Shell-Skript nicht erkannt, aber Sie können sie durch '$ {@}' oder enger '$ 1' ersetzen. Ich hatte seit einiger Zeit keinen Grund mehr, das zu nutzen, aber es sollte funktionieren. Viel Glück. – shellter
Leider funktioniert es nicht. Weder mit '$ {@}' noch mit '$ 1'. Aber danke für deine Antwort. Ich dachte mir, vielleicht könnte der Lesebefehl helfen: 'lese {}'. Aber auch kein Erfolg. – saltarob
Also meine ich '#!/Bin/sh; terminal-notifier -message "s3cmd Hochladen $ {@}"; ... $ {@} ...; .... $ {@} ... etc' ODER '... terminal-notifier -message" s3cmd Upload $ {1} "; ... usw. Viel Glück. – shellter