--- title: 2.3、shell(4)-使用技巧 date: 2018-3-6 00:52:25 tags: - linux - shell categories: - linux --- #### 判断上一条命令执行是否成功 `$?`变量的值是上一条命令执行的返回值 通过判断这个变量的值 , 可以知道上一条命令是否执行成功 ```bash if [ $? -eq 0 ];then echo "执行成功" else echo "执行失败" fi ``` #### 逐行读取文件 ```bash while read LINE do echo $LINE done < test.txt ``` #### 通用解压函数 `$1`表示函数接收到的第一个参数 ```bash extract() { if [ -f $1 ] ; then case $1 in *.tar.bz2) tar xjf $1 ;; *.tar.gz) tar xzf $1 ;; *.bz2) bunzip2 $1 ;; *.rar) unrar e $1 ;; *.gz) gunzip $1 ;; *.tar) tar xf $1 ;; *.tbz2) tar xjf $1 ;; *.tgz) tar xzf $1 ;; *.zip) unzip $1 ;; *.Z) uncompress $1 ;; *.7z) 7z x $1 ;; *) echo "$1 cannot be extracted via extract()" ;; esac else echo "$1 is not a valid file" fi } ``` 执行`extract 文件名`就可以解压任意格式的压缩文件了, 比如**extract nodejs.tar.gz** 可以把上述函数添加到`~/.bashrc`当中, 使用bash作为shell的时候会自动先执行该文件 这样每次都可以使用了 一些命令的别名, 也可以配置在这里面 #### 命令的别名 `alias`命令用于给指定的命令组合指定别名 比如 ```bash alias ls='ls --color=auto' alias ll="ls --color -al" alias grep='grep --color=auto' # 查看当前时间 alias now='date "+%Y-%m-%d %H:%M:%S"' ``` 此时执行`ll`就相当于执行`ls --color -al` 如果别名覆盖了原本的命令 ( 比如上面的ls ) 想使用原本的命令可以在前面加`\` 也就是`\ls`