Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Shell:将ssh命令结果保存到局部变量_Shell_Ssh - Fatal编程技术网

Shell:将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命令,它会发回一个数字:

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")