Shell:将ssh命令结果保存到局部变量
我有一个ssh命令,它会发回一个数字:Shell:将ssh命令结果保存到局部变量,shell,ssh,Shell,Ssh,我有一个ssh命令,它会发回一个数字: ssh ${user}@${hostname} "wc -l < ${workspace}/logs" 但是它不起作用,为什么?您应该使用$()来获取命令的结果,而不是${}(至少在bash中)。下一行假设工作区是在执行行=的主机上定义的变量,而不是在远程上(如果它在远程上,则需要转义$:\${workspace}/logs lines=$(ssh ${user}@${hostname} "wc -l < ${workspace}/logs
ssh ${user}@${hostname} "wc -l < ${workspace}/logs"
但是它不起作用,为什么?您应该使用$()
来获取命令的结果,而不是${}
(至少在bash中)。下一行假设工作区
是在执行行=
的主机上定义的变量,而不是在远程上(如果它在远程上,则需要转义$
:\${workspace}/logs
lines=$(ssh ${user}@${hostname} "wc -l < ${workspace}/logs" )
lines=$(ssh${user}@${hostname}“wc-l<${workspace}/logs”)
将获取结果分配给变量时,您的命令应该用“()”而不是“{}”包装。另外,其他的只是变量而不是命令,因此不需要包装(假设它们是在脚本或其他东西中定义的)
lines=$(ssh$user@$hostname“wc-l<$workspace/logs”)
您是想计算工作区/日志中的日志数,还是日志中的行数?@GeneralBrae我想计算名为“日志”的文件中的行号
lines=$(ssh ${user}@${hostname} "wc -l < ${workspace}/logs" )
lines=$(ssh $user@$hostname "wc -l < $workspace/logs")