我想使用命令的某些输出,但我不知道如何将输出保存在变量或文件中。
脚本通过telnet连接到指定的服务器并执行不同的命令。进一步的命令需要一个命令。好吧......我必须从命令输出中保存这些信息。
我的代码:
#!/bin/bash
(
echo open server portnumber
sleep 2s
echo "login username password"
sleep 1s
echo "use sid=1"
CLIENT_LIST=$(echo "clientlist")
sleep 1s
echo "clientupdate client_nickname=Administrator"
for client_id in $(echo $CLIENT_LIST | grep -Eo "clid=[0-9]+" | grep -Eo "[0-9]+"); do
echo "clientpoke clid=$client_id msg=How\sare\syou!"
sleep 1s
done
sleep 1s
echo "logout"
echo "quit"
) | telnet
我想保存命令' clientlist'的输出。在变量或文件中。变量将是最佳解决方案。但实际上变量只是保存了客户列表'而不是命令的输出。 :(
我希望有人可以帮助我。提前致谢! :)
如果您想测试它:它是为TeamSpeak 3服务器制作的。
答案 0 :(得分:6)
运行命令' clientlist'并将输出保存在变量中:
output_var=$(clientlist)
在bash或sh中,$(...)
语法表示"运行此命令并返回它产生的任何输出。"
答案 1 :(得分:0)