环境变量或变量输出似乎对我不起作用......我看到已经涵盖了许多版本,但它们看起来非常具体,我感到困惑。
我正在OSX 10.9上创建我的第一个shell脚本。该脚本到目前为止执行以下操作:
1)向用户询问一系列问题,如服务器IP地址,服务器端口,ssh登录用户名和其他变量。
2)使用用户设置的变量,然后通过ssh连接到linux框(ubuntu 14)。
3)ssh连接后,终端启动一个名为iperf3
的程序,使用用户从脚本中指定的ip
和port
在服务器上运行。
到目前为止,所有这些步骤都有效。
问题是,一旦iperf程序开始侦听脚本指定的端口,所有终端命令都将暂停。为了在我的客户端上运行iperf3,此时我需要打开一个新的选项卡或窗口,并手动运行命令。我宁愿让新标签继续离开剧本。
但是,即使我手动运行命令,终端中的这些新选项卡或窗口也不知道用户之前从脚本设置的变量。我一直在尝试导出命令,并研究设置环境变量,但我很困惑和丢失。
理想情况下,后续步骤将从我创建的一个脚本文件中运行,然后按以下步骤操作:
4)创建新标签页,然后使用用户指定的iperf3
和ip
启动port
。
5)将创建的--json
文件上传到linux盒子上运行的MySQL数据库。
iperf,对于那些不知道的人,测试客户端和主机之间的网络带宽,并将结果发布到终端。我需要无线地在许多不同的地方测试带宽,并且自动化大多数“复制粘贴”命令将节省大量时间。 任何帮助将不胜感激。
答案 0 :(得分:1)
我知道在脚本之间传递数据的两个技巧:
a)使用包含数据的小文件,然后使用: 写:
echo $ip >> tmpfile
echo $other_data >> tmpfile
将其取回:
var=$(cat tmpfile)
# You'll get one value per line and you can use it with something like
while read line
do
##do some job...
done < tmpfile
b)使用'&amp;'在行的末尾调用一个你不想等待的脚本,所以你不需要另一个标签或脚本......