06-shell编程细节记录

  1. 获取当前shell所在目录:BASE_PATH=$(cd dirname $0;pwd)
  2. /etc/profile配置的是所有的用户 ~/.bashrc配置的是当前的用户
  3. $PATH表示引用已经定义好的变量
  4. 单引号双引号和“的区别
    • 单引号表示原文输出
    • 双引号表示如果有变量引用会取出变量中的值
    • 表示先执行其中的代码,然后将结果传给下个命令,相当于管道命令
  5. {}对一串命令在当前shell执行,比如在shell中进行配置JDK环境变量的时候${JAVA_HOME}
  6. grep -q hell a.txt表示如果在a.txt中找到hello,就返回状态值0,一般用在if的判断上
#!/bin/bash 
#动态设置JDK的环境变量,修改JAVA_HOME即可。

#获取当前文件夹目录
BASE_PATH=$(cd `dirname $0`;pwd)

#输出变量
JAVA_HOME="$BASE_PATH/jdk1.7.0_71.jdk/Contents/Home"
#JAVA_HOME="$BASE_PATH/jdk1.8.0_131.jdk/Contents/Home"


#查看是否已经配置了jdk的环境变量
grep -q "export JAVA_HOME"  /etc/profile

#如果上一行的命令返回结果不等于0
if [ $? -ne 0 ]; then
    echo "java环境变量没有配置,现在输出java环境变量"
    echo "export JAVA_HOME="${JAVA_HOME}>>/etc/profile
    echo "export PATH="${PATH}:${JAVA_HOME}/bin>>/etc/profile

        source ~/.bash_profile
        echo '成功配置好了java环境变量!!!!'
fi

相关文章

用的openwrt路由器,家里宽带申请了动态公网ip,为了方便把2...
#!/bin/bashcommand1&command2&wait从Shell脚本并行...
1.先查出MAMP下面集成的PHP版本cd/Applications/MAMP/bin/ph...
1、先输入locale-a,查看一下现在已安装的语言2、若不存在如...
BashPerlTclsyntaxdiff1.进制数表示Languagebinaryoctalhexa...
正常安装了k8s后,使用kubect工具后接的命令不能直接tab补全...