blog-web/source/_posts/linux/2.3、shell(4)-使用技巧.md
2019-06-10 15:18:11 +08:00

1.8 KiB

title date tags categories
2.3、shell(4)-使用技巧 2018-3-6 00:52:25
linux
shell
linux

判断上一条命令执行是否成功

$?变量的值是上一条命令执行的返回值 通过判断这个变量的值 , 可以知道上一条命令是否执行成功

if [ $? -eq 0 ];then
  echo "执行成功"
else
  echo "执行失败"
fi

逐行读取文件

while read LINE
do
  echo $LINE 
done < test.txt

通用解压函数

$1表示函数接收到的第一个参数

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命令用于给指定的命令组合指定别名 比如

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