Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/107.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 备选方案——配置JavaBash脚本_Linux_Bash_Ssh - Fatal编程技术网

Linux 备选方案——配置JavaBash脚本

Linux 备选方案——配置JavaBash脚本,linux,bash,ssh,Linux,Bash,Ssh,我正在编写一个在远程机器上安装java的脚本。在我为JRE运行了.bin文件之后,如何在用户不必输入任何内容的情况下设置替代项--config java 例如,当您键入“Alternations--ConfigJava”时,系统会提示您选择想要的java版本。根据我安装java的方式(“/usr/sbin/alternations--install/usr/bin/java/location/of/jdk1.6/bin/java 2”),#“2”选项应该始终是我想要选择的java 因此,使用ss

我正在编写一个在远程机器上安装java的脚本。在我为JRE运行了.bin文件之后,如何在用户不必输入任何内容的情况下设置替代项--config java

例如,当您键入“Alternations--ConfigJava”时,系统会提示您选择想要的java版本。根据我安装java的方式(“/usr/sbin/alternations--install/usr/bin/java/location/of/jdk1.6/bin/java 2”),#“2”选项应该始终是我想要选择的java

因此,使用ssh命令执行,我如何在用户不必选择选项的情况下为java备选方案选择第二个选项呢。我想要全自动的

这是一个bash脚本

谢谢


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


通常,您可以为任何程序提供标准输入所需的内容,如下所示:

echo -e "line 1\nline 2\nline 3" | program

我是用这个脚本做的:

tmp=`mktemp`
echo 2 > $tmp
alternatives --config java < $tmp
rm -f $tmp
tmp=`mktemp`
echo 2>$tmp
备选方案——配置java<$tmp
rm-f$tmp

这对我使用Java 8很有效:

 alternatives --install /usr/bin/java java /usr/lib/jvm/jre1.8.0_60/bin/java 3
 alternatives --config java <<< '3'
备选方案——安装/usr/bin/java/usr/lib/jvm/jre1.8.0_60/bin/java 3

备选方案——配置java您也可以以非交互方式运行
alternations
命令。使用
--set
选项直接指定备选方案的路径,而不是
--config

sudo alternatives --set java /location/of/jdk1.6/bin/java

我的/usr/lib/jvm目录中有几个java版本

我的脚本必须首先删除旧的符号链接,创建一个新的符号链接,然后直接使用更新替代项指定替代项的路径(没有更新前缀,我无法使替代项工作)我的系统-Debian 8.11 我的剧本:

#!/bin/bash
echo "Removing old java 8 symlink.."
sudo unlink /usr/lib/jvm/java
echo "Linking new java.."
sudo ln -s /usr/lib/jvm/new_java /usr/lib/jvm/java

echo "Updating alternatives for java and java compiler"
sudo update-alternatives --set java /usr/lib/jvm/new_java/bin/java
sudo update-alternatives --set javac /usr/lib/jvm/new_java/bin/javac

为什么不干脆
echo 2|alternations--config java
?@Blagovest:我现在就试试你的建议。echo 2|ssh-p“35903”-I$HOME/sshids/idrsa-1.old${1}“alternations--config java”;就是我使用的代码,它工作得很好。感谢使用Alternations--set应该是一种方式,而不是试图将输入传递给Alternations--config。
#!/bin/bash
echo "Removing old java 8 symlink.."
sudo unlink /usr/lib/jvm/java
echo "Linking new java.."
sudo ln -s /usr/lib/jvm/new_java /usr/lib/jvm/java

echo "Updating alternatives for java and java compiler"
sudo update-alternatives --set java /usr/lib/jvm/new_java/bin/java
sudo update-alternatives --set javac /usr/lib/jvm/new_java/bin/javac