0

次の手法を使用して、fswatch の出力をシェル スクリプトのいくつかのコマンドにパイプしようとしています。

$ fswatch -0 [opts] [paths] | xargs -0 -n 1 -I {} [command]

[command] の代わりにシェルスクリプトのパスを入れます。これが私のコマンドラインです:

fswatch -0 -Ie ".*\.*$" -i ".*\.mp4$" ~/Desktop/encoding\ tests | xargs -0 -n 1 -I {} ~/Desktop/s3cmd.sh

スクリプトは次のとおりです。

#!/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"

申し訳ありませんが、私はシェル スクリプトの経験がありません。fswatch の出力をスクリプトにパイプするにはどうすればよいですか?

ありがとうございました。

4

2 に答える 2

0

この質問を持つ将来の人のために:

fswatch コマンド:

fswatch -0 /path/to/watch | xargs -0 -n 1 -I {} ~/yourfile.sh {}

.sh ファイル:

#!/bin/bash
echo $1

$1 は、変更されたファイルへのフル パスである fswatch の出力と等しくなります。

于 2018-06-14T07:49:50.403 に答える