远程调用bash脚本失败但在本地运行时工作

时间:2012-12-20 21:30:37

标签: bash ssh find

尝试在批处理文件中本地运行此命令会产生预期结果

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**

如何对批处理文件进行编码,以便在远程调用时正确运行?

2 个答案:

答案 0 :(得分:2)

或者,您也可以将它放在批处理文件的顶部:

  

export PATH = / bin /:/ usr / bin:$ PATH

根据shellter的正确诊断,这将确保Cygwin发现而不是Windows发现。

答案 1 :(得分:0)

我发现如果你在找到它的工作之前加上引号。将命令的第一部分作为:

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

我摆脱了-name“*”,因为我认为这是多余的。

相关问题