2012-12-20 129 views
1

試圖在批處理文件本地運行此命令可以預期的結果遠程調用bash腳本失敗,但在本地運行

find $DIR -name "*" -type f -exec ls -alo {} \; | awk '{printf "%-12s %-1s %-1s %-1s %-1s \n",$4,substr($8,20),$9,$10,$11}' | sort -k 1 -n > file_count 

,當我通過SSH遠程運行的批處理文件,命令符的工作原理:

+ find /cygdrive/h/AltaroHyperVBackup -name '*' -type f -exec ls -alo '{}' ';' 
+ awk '{printf "%-12s %-1s %-1s %-1s %-1s \n",$4,substr($8,20),$9,$10,$11}' 
**FIND: Invalid switch** 

我應該如何編寫批處理文件,以便遠程調用時能夠正確運行?

回答

0

我發現如果你把引號放在找到它的工作。讓你的命令的第一部分是這樣的:

ssh NODE "find $DIR -type f -exec ls -alo {} \\; " 

我擺脫了名字「*」,因爲我認爲這是多餘的。

2

或者,你也可以把這個靠近你的批處理文件的頂部:

出口PATH =/bin中/:在/ usr/bin中:$ PATH

這將確保Cygwin發現,而不是Windows發現,被調用,每個shellter的正確診斷。

相關問題