我做了一個簡單的shell腳本來處理SoX的MP3文件。PPSS shell腳本
for f in ./*.mp3; do sox "$f" "${f%%.mp3}S.mp3" silence 1 0.02 1% -1 0.02 1%; done
的語法應該是這樣的:
sox in.wav out.wav silence 1 0.1 1% -1 0.1 1%
它會從我有一個文件夾中的文件刪除沉默,並創建一個「X」在最後一個新的文件(區分從原來的)。我將腳本保存在我的/ bin文件夾中,並且工作正常。
但是,現在我想與PPSS一起使用它,以便並行運行8個實例。雖然我似乎無法得到它的工作,但在日誌文件中,我收到的錯誤是日誌中的這個錯誤:
/usr/local/bin/ppss:line 2283:soxy.sh/Users/marw/Downloads/testfolder // ppss_dir/job_log/_Users_marw_Downloads_testfolder__10_audio_mp3:沒有這樣的文件或目錄
狀態:FAILURE 總處理時間(小時:分鐘:秒):00:00:01
的PPSS語法應該是這樣的:
|P|P|S|S| Distributed Parallel Processing Shell Script 2.97
usage: /usr/local/bin/ppss [[ -d <sourcedir> | -f <sourcefile> ]] [[ -c '<command> "$ITEM"' ]]
[[ -C <configfile> ]] [[ -j ]] [[ -l <logfile> ]] [[ -p <# jobs> ]]
[[ -q ]] [[ -D <delay> ]] [[ -h ]] [[ --help ]] [[ -r ]] [[ --daemon ]]
Examples:
/usr/local/bin/ppss -d /dir/with/some/files -c 'gzip '
/usr/local/bin/ppss -d /dir/with/some/files -c 'cp "$ITEM" /tmp' -p 2
/usr/local/bin/ppss -f <file> -c 'wget -q -P /destination/directory "$ITEM"' -p 10
我是新來的shell scr如果這是一個愚蠢的問題,請原諒我。我的操作系統是MacOS 10.11.5。
這就是我想用PPSS:
ppss -d /Users/marw/Downloads/testfolder -c 'soxy.sh'
也許我必須以不同的方式寫我原來的劇本?雖然沒有PPSS,但它工作正常。
編輯:
我有一個調試日誌的位置:http://pastebin.com/wak47rf8
我在重新閱讀您的帖子後刪除了我的答案。看起來'ppss'正在將你的腳本「soxy.sh」傳遞給你給它的目錄路徑,儘管我不熟悉「ppss」以及它的工作原理。在再次發帖之前,我會仔細考慮這一點。 – bluerojo
好酷:)謝謝。順便說一句,它不一定是PPSS,但這是我發現在Stackoverflow上搜索。我只是想並行運行腳本,所以我可以使用8個內核而不是1個。 – Marw
我找到了答案,我必須在「soxy.sh」之後留下尾部空格,就像這個'soxy.sh'。試過這種方式,它的工作。 – Marw