0%

Shell 使用

初识 shell

脚本其实就是短小的、用来让计算机自动化完成一系列工作的程序,这类程序可以用文本编辑器修改,不需要编译,通常是解释运行的。

第一个 shell 脚本

打开文本编辑器 (可以使用 vi/vim 命令来创建文件),新建一个文件 test.sh,扩展名为 sh(sh 代表 shell)。

1
2
#!/bin/bash
echo "Hello World !"

1、chmod +x file 加上执行权限,否则会提示无执行权限。
2、注意执行脚本时候或者全目录,或者 ./file.sh ,如果不加的话,linux 默认会从PATH 里去找该 file.sh。
3、脚本后缀名可以任意修改,仍然可以正常运行。

运行 shell 脚本

运行 Shell 脚本有两种方法:
1、作为可执行程序

1
2
chmod +x ./test.sh  #使脚本具有执行权限
./test.sh #执行脚本

2、作为解释器参数
1
/bin/sh test.sh

sh/bash/csh/Tcsh/ksh/pdksh 等 shell 的区别

  • sh (全称 Bourne Shell): 是 UNIX 最初使用的 shell,而且在每种 UNIX 上都可以使用。Bourne Shell 在 shell 编程方面相当优秀,但在处理与用户的交互方面做得不如其他几种 shell。
  • bash(全称 Bourne Again Shell): LinuxOS 默认的,它是 Bourne Shell 的扩展。 与 Bourne Shell 完全兼容,并且在 Bourne Shell 的基础上增加了很多特性。可以提供命令补全,命令编辑和命令历史等功能。它还包含了很多 C Shell 和 Korn Shell 中的优点,有灵活和强大的编辑接口,同时又很友好的用户界面。
  • csh (全称 C Shell): 是一种比 Bourne Shell 更适合的变种 Shell,它的语法与 C 语言很相似。
  • Tcsh: 是 Linux 提供的 C Shell 的一个扩展版本。Tcsh 包括命令行编辑,可编程单词补全,拼写校正,历史命令替换,作业控制和类似 C 语言的语法,他不仅和 Bash Shell 提示符兼容,而且还提供比 Bash Shell 更多的提示符参数。
  • ksh (全称 Korn Shell): 集合了 C Shell 和 Bourne Shell 的优点并且和 Bourne Shell 完全兼容。
  • pdksh: 是 Linux 系统提供的 ksh 的扩展。pdksh 支持人物控制,可以在命令行上挂起,后台执行,唤醒或终止程序。

Shell 变量

定义变量

1
your_name="runoob.com"

注意,变量名和等号之间不能有空格。同时,变量名的命名须遵循如下规则:

  1. 命名只能使用英文字母,数字和下划线,首个字符不能以数字开头。
  2. 中间不能有空格,可以使用下划线(_)。
  3. 不能使用标点符号。
  4. 不能使用 bash 里的关键字(可用 help 命令查看保留关键字)。

使用变量

使用一个定义过的变量,只要在变量名前面加美元符号即可,如:

1
2
3
your_name="qinjx"
echo $your_name
echo ${your_name}

变量名外面的花括号是可选的,加不加都行,加花括号是为了帮助解释器识别变量的边界。推荐给所有变量加上花括号,这是个好的编程习惯。

只读变量

使用 readonly 命令可以将变量定义为只读变量,只读变量的值不能被改变。

1
2
3
4
#!/bin/bash
myUrl="https://www.google.com"
readonly myUrl
myUrl="https://www.runoob.com"

上面的程序执行会报错 /bin/sh: NAME: This variable is read only.

删除变量

使用 unset 命令可以删除变量。语法:

1
unset variable_name

变量被删除后不能再次使用。unset 命令不能删除只读变量。

Shell 字符串

字符串是 shell 编程中最常用最有用的数据类型,字符串可以用单引号,也可以用双引号,也可以不用引号。

支持一根棒棒糖!