0

我想要做的是通过 bash 脚本登录到 karaf 控制台并在那里执行一些命令。我正在尝试这样做:

#!/bin/bash
cmd='sudo ssh -p 8101 openhab@localhost'
eval $cmd
cmd='echo "password" && echo log:clear && echo logout'
eval $cmd

你怎么能怀疑,它不起作用,它在“密码:”处冻结,等待用户输入。然后,当我输入密码时,karaf 正在打开,当我关闭它时,脚本的其余部分正在执行。有没有办法自动输入密码并在里面执行命令?

4

1 回答 1

2

你应该试试 apache karaf 客户端。请参见下面的示例。

 echo "log:clear" | /opt/apache-karaf-4.2.8/bin/client

输出

    __ __                  ____      
   / //_/____ __________ _/ __/      
  / ,<  / __ `/ ___/ __ `/ /_        
 / /| |/ /_/ / /  / /_/ / __/        
/_/ |_|\__,_/_/   \__,_/_/         

阿帕奇卡拉夫 (4.2.8)

点击 '' 获取可用命令列表,点击 '[cmd] --help' 获取特定命令的帮助。点击“system:shutdown”关闭 Karaf。点击 '' 或输入 'logout' 以断开 shell 与当前会话的连接。

karaf@root()> 日志:清除

karaf@root()>

于 2020-03-11T07:35:42.913 回答