我正在使用 ssh 从 bash 脚本在主机上执行命令,如下所示:
ssh pi@rasp 'rm /home/pi/webcam/rmtest.txt' || \
{ echo "remove failed" > $log; }
它按预期工作,除非主机上出现错误,否则它会重定向到客户端:
rm: cannot remove ‘/home/pi/webcam/rmtest.txt’: No such file or directory
我想将该错误消息重定向到客户端上的文件,但我不知道该怎么做。
我尝试放置:
>$log 2>&1
在不同的地方,但没有任何效果。
变量$log:
pi@raspsky:~/webcam $ echo $log
/home/pi/webcam/condtest.log
答案1
ssh pi@rasp 'rm /home/pi/webcam/rmtest.txt' 2> $log
ssh 将远程 stdin、stdout 和 stderr 描述符连接到本地描述符,因此只需根据需要重定向本地 stderr 即可。