75 lines
1.8 KiB
Markdown
75 lines
1.8 KiB
Markdown
---
|
|
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
|
|
```
|
|
<!-- more -->
|
|
|
|
#### 逐行读取文件
|
|
```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` |