Bash使用

Bash基本使用

#常用快捷键

1
2
3
4
5
6
7
8
9
^c   终止当前进程
^z 将当前进程挂起到后台
^d 退出, 等价于exit
^l 清屏
^r 搜索历史命令
^a 光标移到开头
^e 光标移到结尾
^u 删除光标前所有内容
^k 删除光标后所有内容

#常用通配符

1
2
3
4
*                       匹配前面的内容任意次
? 匹配前面的内容0-1次
[list] list中任意一个字符
{string1,string2,...} string1,string2或者更多字符串

#引号

  • 双引号"" 把引号中的内容作为一个整体, 允许通过$符号来引用其他变量值
  • 单引号'' 把引号中的内容作为一个整体, 禁止通过$符号来引用其他变量值, 其中的shell特殊符号都视为普通字符
  • 反引号 与$()相同, 先执行引号中的内容, 不能嵌套

shell脚本

#结构

  • HashBang
1
#!/usr/bin/env bash
  • 命令
1
echo 'Hello World'

#执行脚本

  • 标准方式
1
2
chmod +x script.sh
./script.sh
  • 非标准方式
  1. 直接指定解释器执行
1
2
3
bash script.sh
# -x 显示脚本的执行过程, 用于debug
# -n 检查语法是否有问题
  1. 使用source命令执行
1
source script.sh

#变量

  • 变量名不能由数字开头
  • 区分大小写

#读取用户输入

语法:read [选项] 变量名

  • -p 提示信息
  • -n 输入长度
  • -s 不回显
  • -t 超时时间, 单位s

#内置变量

1
2
3
4
5
6
7
8
9
$$      当前进程号
$? 上一条命令的返回值
$_ 上一条命令的最后一个参数
$0 当前执行的程序(脚本文件)名
${x} 第x个参数
$* 所有参数
$@ 所有参数
$# 执行时所带的参数个数
$! 后台运行的最后一个进程的进程号

#简单四则运算

表达式举例
$(( ))echo $((1+1))
$[ ]echo $[10-5]
exprexpr 10 / 5