替代--config java bash脚本

pro*_*007 6 linux ssh bash

我正在编写一个在远程机器上安装java的脚本.在为JRE运行.bin文件之后,我如何设置备选方案--config java而无需用户输入任何内容.

例如,当您键入"alternatives --config java"时,系统会提示您选择所需的Java版本.由于我安装java的方式("/ usr/sbin/alternatives --install/usr/bin/java java /location/of/jdk1.6/bin/java 2"),#"2"选项应始终为我想要选择的java.

因此,使用ssh命令执行,如何在没有用户选择选项的情况下为java替代选择第二个选项.我希望它完全自动化.

这是一个bash脚本.

谢谢


下面是代码(现在正常工作):

#install the jre
sshRetValue=`ssh -p "22" -i $HOME/sshids/idrsa-1.old ${1} " /home/geiser/jms_adapter/jre-6u25-linux-i586.bin "`;
sshRetValue=`echo $?`;
if [ "$sshRetValue" -eq 0 ];then
        echo "java jre installed successfully";
        #set the alternative and stuff if needed
        ssh -p "22" -i $HOME/sshids/idrsa-1.old ${1} " /usr/sbin/alternatives --install /usr/bin/java java /root/jre1.6.0_25/bin/java 2 ";
        echo 2 | ssh -p "35903" -i $HOME/sshids/idrsa-1.old ${1} " alternatives --config java ";
else
        echo "java jre installation failed";
fi
Run Code Online (Sandbox Code Playgroud)

Ala*_*son 25

您也可以alternatives非交互式运行该命令.而不是--config使用该--set选项直接指定替代路径.

sudo alternatives --set java /location/of/jdk1.6/bin/java
Run Code Online (Sandbox Code Playgroud)

  • 使用**替代--set**应该是要走的路,而不是试图将输入传递给**替代--config**. (4认同)

Tho*_*att 6

这对Java 8有用:

 alternatives --install /usr/bin/java java /usr/lib/jvm/jre1.8.0_60/bin/java 3
 alternatives --config java <<< '3'
Run Code Online (Sandbox Code Playgroud)


Bla*_*iev 2

一般来说,您可以为任何需要标准输入的程序提供数据,如下所示:

echo -e "line 1\nline 2\nline 3" | program
Run Code Online (Sandbox Code Playgroud)