whichjava_Linux使⽤which与$()来定位并执⾏命令
Linux 使⽤ which 与 $() 来定位并执⾏命令,⽰例如下:
[cdp@cdppguat data-api]$ $(which java) -version
java version "1.8.0_201"
Java(TM) SE Runtime Environment (build 1.8.0_201-b09)
这⾥⽤到了两个 shell 中的知识:
⼀是 which 命令,which 命令的功能是从⽤户的 path ⽬录中搜索可执⾏⽂件并返回。
⼆是 $() 的语法,$() 表⽰执⾏ () ⾥的命令并将结果返回。
如果你要在某个脚本中使⽤某个命令去执⾏⼀个程序,⼀般是第三⽅程序,那么这种写法会更 “安全”,也更易于移植。⾸先 $(which java) 获取的是绝对路径,可以规避相对路径带来的不可控异常,其次 $(which java) 可以便于在不同的服务器上运⾏。
当然,前提是你的程序已经配置了环境变量。
linux循环执行命令脚本⽐如:服务器 A 上的 Java 安装位置如下:
[cdp@cdppguat data-api]$ echo $(which java)
/opt/jdk1.8.0_201/bin/java
服务器 B 上的 Java 安装位置如下:
[cdpadmin04@sltwy4qasyy data-api]$ echo $(which java)
/usr/local/java/jdk/bin/java
如果要在服务器 A&B 上都运⾏⼀个脚本来执⾏⼀个 Java 程序,如果你在服务器 A 上的脚本是写的路径 /opt/jdk1.8.0_201/bin/java,那么这个脚本放到服务器 B 上是肯定运⾏不了的,因为服务器 B 上的 /opt/jdk1.8.0_201/bin/java 位置不到 Java 命令。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论