2016-04-03 55 views
0

將未打開的文件從目錄移動到子目錄的這一行正在導致Syntax error: "(" unexpected錯誤。它從命令行運行時沒有任何語法錯誤,但是如果我在bash文件中運行它,奇怪的是它會拋出這個語法錯誤。從sh文件中拋出語法錯誤但不包含命令行的行

comm -2 -3 <(find $DIR -maxdepth 1 -type f|sort) <(sudo lsof $DIR/* | awk '(NR>1) {print $9}'|sort) | xargs -I {} mv {} $DIR/tmp 

任何想法?

謝謝

+1

你'/斌/ sh'可能不是bash的。如果你打算使用bashisms,使用'/ bin/bash'作爲shebang行。 – ninjalj

+0

在bash中使用'set -x'來顯示調試信息。另外,將命令分解成shell變量並使用它們。起初所有在一條線上看起來都很擁擠,很難找到。 – t0mm13b

+0

嘗試一個簡單的例子。我和'cat <(echo file)'一樣。 –

回答

0

請確保您的命令由bash解釋。

我對(簡化)腳本cat <(echo file)有同樣的問題。 如果shebang行缺失或未被識別,則使用/ bin/sh。
在我的系統上,/bin/sh不是指向bash的鏈接,並且該命令將失敗。
添加家當讓我的腳本工作:

#!/bin/bash 
cat <(echo file) 
相關問題