shell 教程

Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁。Shell 既是一种命令语言,又是一种程序设计语言。

Shell 脚本(shell script),是一种为 shell 编写的脚本程序。

Shell 编程跟 JavaScript、php 编程一样,只要有一个能编写代码的文本编辑器和一个能解释执行的脚本解释器就可以了。

查看当前运行的 Shell

  1. echo $SHELL

查看当前的 Linux 系统安装的所有 Shell

  1. cat /etc/shells

查看版本

  1. bash --version
  2. 或者
  3. echo $BASH_VERSION

运行

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

实例

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

! 是一个约定的标记,它告诉系统这个脚本需要什么解释器来执行,即使用哪一种 Shell。

shell变量

  • 命名规则
    • 命名只能使用英文字母,数字和下划线,首个字符不能以数字开头。
    • 中间不能有空格,可以使用下划线(_)。
    • 不能使用标点符号。
    • 不能使用bash里的关键字(可用help命令查看保留关键字)。
  • 使用变量
  1. your_name="qinjx"
  2. echo $your_name
  3. echo ${your_name}
  • 只读变量(不能被修改,否则会报错)
  • 删除变量
    • unset variable_name
    • 变量被删除后不能再次使用。unset 命令不能删除只读变量
  1. #!/bin/sh
  2. myUrl="http://www.runoob.com"
  3. unset myUrl
  4. echo $myUrl

以上例子不会输出任何东西

波浪线~会自动扩展成当前用户的主目录。

  1. echo ~
  • 获取字符串长度
  1. string="abcd"
  2. echo ${#string} #输出 4

循环

  1. for i in {1..4}
  2. do
  3. echo $i
  4. done

如果整数前面有前导0,扩展输出的每一项都有前导0

  1. $ echo {01..5}
  2. 01 02 03 04 05
  3. $ echo {001..5}
  4. 001 002 003 004 005

这种简写形式还可以使用第二个双点号(start..end..step),用来指定扩展的步长。

  1. echo {0..8..2}
  2. 0 2 4 6 8

多个简写形式连用,会有循环处理的效果。

  1. echo {a..c}{1..3}
  2. a1 a2 a3 b1 b2 b3 c1 c2 c3

获取字符串的长度

  1. varname="fdsfa"
  2. echo ${#varname}