Shell 是一个命令行解释器,负责接收用户输入的命令并调用操作系统的内核执行。
不同的 Shell 版本之间存在一些微妙的差异,但大部分命令通用。
Shell 脚本可以用来编写自动化任务,如安装软件、备份数据等。
编写 Shell 脚本需要使用文本编辑器,并注意第一行需要有#!/bin/bash表示使用 Bash 解释器。
基础使用
helloworld 范例
vi hello.sh
1
2
3
4
5
6
#!/bin/bash
#name=$1
echo "Hello,$name"
echo "$PATH"
第一行为固定写法,表示使用 bash 解释器
shell 脚本的后缀没有固定写法,约定俗成以.sh结尾可读性更好
#表示注释行
脚本执行和变量
- 新建脚本:
vi hello.sh,添加执行权限(重要):chmod a+x hello.sh - 执行脚本:
bash shfile或者直接输入脚本路径:./shfile - 定义脚本接收的输入参数使用
$1、$2...$n... etc的形式,表示第 n 个脚本参数,执行脚本并输入参数例:./hello.sh xyh - 在一次 shell 会话中,可以定义临时的变量:
name=xyh(=前后注意不要有空格)。查看变量:echo $name。若要在 sh 脚本中使用在外部定义的变量,需要定义成环境变量:export name=xyh。这样设置的变量只能在此次会话中使用。 -
在定义启动会话配置:在
.bashrc(每次新会话开始时)和.profile(用户登录时执行且只执行一次),一般使用前者来定义常用的系统变量和命令别名。vi .bashrc1 2 3 4 5 6 7 8 9 10 11 12 13 14
# User specific aliases and functions alias rm='rm -i' alias cp='cp -i' alias mv='mv -i' # 定义系统命令别名 alias la='ls -A' # Source global definitions if [ -f /etc/bashrc ]; then . /etc/bashrc fi # 定义环境变量 export name=谢雨航
-
一些常用的系统变量

-
命令作为变量赋值:
$(bash cmd)例如在 sh 脚本中,赋值一个随机数给变量:
number=$(shuf -i 1-10 -n 1)
注:本笔记截图来源于 Geekhour 的 Shell 入门视频