博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

shell 特殊变量

Posted on 2015-03-05 16:02  bw_0927  阅读(157)  评论(0)    收藏  举报

http://coolshell.cn/articles/8619.html

    • !$
      !$是一个特殊的环境变量,它代表了上一个命令的最后一个字符串。如:你可能会这样:
      $mkdir mydir
      $mv mydir yourdir

      $cd yourdir
      可以改成:
      $mkdir mydir
      $mv !$ yourdir
      $cd !$
      • ‘ALT+.’ or ‘<ESC> .’
        热建alt+. 或 esc+. 可以把上次命令行的参数给重复出来。
      • > file.txt
        创建一个空文件,比touch短。
      • curl ifconfig.me   获得本机的外网地址

 

$* 和 $@ 的区别

$* 和 $@ 都表示传递给函数或脚本的所有参数,不被双引号(" ")包含时,都以"$1" "$2" … "$n" 的形式输出所有参数。

但是当它们被双引号(" ")包含时,"$*" 会将所有的参数作为一个整体,以"$1 $2 … $n"的形式输出所有参数;"$@" 会将各个参数分开,以"$1" "$2" … "$n" 的形式输出所有参数。

mkdir -p ~/.trash
alias rm=trash
trash()
{
    mv $@ ~/.trash/
}
cleartrash()  
{  
    read -p "clear sure? [n] " confirm                                                                                                   
    [[ $confirm == 'y' ]] || [[ $confirm == 'Y' ]]  && /bin/rm -rf ~/.trash/*  
}