2012-12-20 131 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的正确诊断。

相关问题