我正在尝试使用以下技术将fswatch的输出传递给shell脚本中的几个命令:
$ fswatch -0 [opts] [paths] | xargs -0 -n 1 -I {} [command]
而不是[command]我把shell脚本路径。这是我的命令行:
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"
抱歉,我对shell脚本没有经验。 如何将fswatch输出传输到脚本中?
谢谢。
答案 0 :(得分:0)
#!/bin/bash
fswatch -0 -x --event Created --event Updated --event Renamed -Ie '.*\.*$' -i '.*\.mp4$' ~/Desktop/encoding\ tests \
| xargs -0 -n 1 ~/Desktop/s3cmd-3.sh
这很有效。感谢。
答案 1 :(得分:0)
对于将来有这个问题的人:
fswatch命令:
fswatch -0 /path/to/watch | xargs -0 -n 1 -I {} ~/yourfile.sh {}
.sh文件:
#!/bin/bash
echo $1
现在$ 1将等于fswatch的输出,这是已更改文件的完整路径。