想要从远程文件中读取变量值

时间:2014-02-22 18:42:21

标签: bash

在我的一个bash脚本中,我想阅读并使用远程机器上其他脚本的变量值。 我应该如何解决这个问题。任何相关信息都会有所帮助。 提前谢谢!

3 个答案:

答案 0 :(得分:3)

这是怎么回事(这是我目前无法自己测试的代码):

text=$(ssh yourname@yourmachine 'grep uploadRate= /root/yourscript')

它假定变量的值包含在一行中。变量文本现在包含变量赋值,可能类似于

uploadRate=1MB/s

有几种方法可以将文本/代码转换为当前脚本中的实际变量赋值,例如评估字符串或使用grep。我会推荐

uploadRate=${text#*=}

只需删除部分并包含=

编辑:还有一点值得一提的是,这只适用于原始作业本身不包含变量引用的情况,如

uploadRate=1000*${kB}/s

答案 1 :(得分:0)

我至少会说两种方式:

1)您只需使用scp命令将输出重定向到远程服务器到系统的文件......它可以为您工作。然后您的机器上的脚本应该将该文件作为参数读取。

机器上的

脚本:

read -t 50 -p "Waiting for argumet: " $1

等待远程机器的输出, 那你可以

sshpass -p<password> scp user@host:/Path/to/file /path/to/script/

您需要做什么:

您应该从您的机器告诉脚本,scp命令的输出是参数($1

2)从您的机器运行脚本:

#!/bin/bash

script='
#Your commands
'

sshpass -p<password> ssh user@host $script

你还有另一种方法可以运行脚本来处理远程机器。

答案 2 :(得分:0)

ssh user@machine 'command'

将打印远程命令的标准输出。