shell小技巧(1)

1.添加环境变量
比如你有个账号叫hotmanhh,那么在/home/hotmanhh下应该有个配置文件叫做.bash_profile(看清楚,前面有个小点,表示隐藏文件)
用文本编辑器修改这个里面的内容
比如我需要声明一个变量ORACLE_BASE
那么就在里面加上如下内容
#Set Oracle Environments
ORACLE_BASE=/u01
export ORACLE_BASE

保存退出后,在命令行下输入如下命令
source /home/hotmanhh/.bash_profile
使该变量生效
然后用echo $ORACLE_BASE就可以看到这个变量的内容了。

2.获取当前文件的目录
getCurPath ()
{
    if [ "` dirname "$0" `" = "" ] || [ "` dirname "$0" `" = "." ]; then
        PACKAGE_PATH=`pwd`
    else
        cd ` dirname "$0" `
        PACKAGE_PATH=`pwd`
        cd -       
    fi;
}
3.SHELL参数常用变量
$#   传送给命令Shell的参数序号
$-   在Shell启动或使用set命令时提供选项
$?   上一条命令执行后返回的值
$$   当前shell的进程号
$!   上一个子进程的进程号
$@   所有的参数,每个都用双括号括起
$*   所有参数,用双括号括起
$n   位置参数值,n表示位置
$0   当前shell名

4.设置主机名称
setHostname()
{
    myHostname=$1   
    cp /etc/HOSTNAME /etc/HOSTNAME_BAK
    echo ${myHostname} > /etc/HOSTNAME
    hostname -F /etc/HOSTNAME
}

5./usr/bin/expect <<EOD
spawn scp ${ScriptFileName} root@${RemoteBaseIP}:${ScriptFileName}
   for {} {1} {} {
           expect {
           "*(yes/no)?" { send "yes\r" ; continue }
           "*assword:" { send "huawei\r" ; continue }
           -re . { exp_continue }
           eof { break }
          }
       }
EOD

6.删除文件
[ -f /root/.ssh/known_hosts ] && rm -f /root/.ssh/known_hosts
\`ps -ef | grep vcs | grep -v grep | awk '{system(\"kill -9 \"\$2)}'\`

7.命令执行顺序
  1.&&
  使用& &的一般形式为:
  命令1 && 命令2
  这种命令执行方式相当地直接。& &左边的命令(命令1)返回真(即返回0,成功被执行)   后,& &右边的命令(命令2)才能够被执行;换句话说,“如果这个命令执行成功& &那么执行这个命令”。

  2.||
  使用||的一般形式为:
  命令1 || 命令2
  ||的作用有一些不同。如果||左边的命令(命令1)未执行成功,那么就执行||右边的命令(命令2);或者换句话说,“如果这个命令执行失败了|| 那么就执行这个命令”。

猜你喜欢

转载自junge8618.iteye.com/blog/934875