Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁。Shell 既是一种命令语言,又是一种程序设计语言。
1,eg: #!/bin/sh
#! 告诉系统其后路径所指定的程序即是解释此脚本文件的 Shell 程序。
2,linux中的bash它是一个shell,人机对话的窗口,它是一个程序,是一个gnu软件,一般linux中默认shell就是bash
运行shell脚本的两种方式:
- 作为可执行程序
- 赋予执行权限
- 执行脚本
eg:
chmod 777 hello.sh
./hello.sh
- 作为解释器参数
eg:
/bin/bash hello.sh
3,shell中的单双引号
1>单引号里的任何字符都会原样输出,单引号字符串中的变量是无效的;
单引号字串中不能出现单独一个的单引号(对单引号使用转义符后也不行),但可成对出现,作为字符串拼接使用。
2>双引号里可以有变量
双引号里可以出现转义字符
4,~在linux中代表用户的主目录,也就是所说的家目录
对于一般用户,~表示/home/用户名
对于root用户,~表示/root
5,只读变量:使用 readonly 命令可以将变量定义为只读变量,只读变量的值不能被改变。
6,删除变量:使用 unset 命令可以删除变量。
eg:
#! /bin/bash
myUrl="http://www.baidu.com"
echo $myUrl
readonly myUrl
myUrl="http:www.taobao.com"
myUrl_1="http://www.runoob.com"
echo $myUrl_1
unset myUrl_1
echo $myUrl_1
结果:
7,获取字符串长度,提取,查找子字符串
#! /bin/bash
#获取字符串长度
one="hello"
two="world"
echo ${#one}
#提取子字符串
echo ${two:2:4}
#查找字符o的位置
echo `expr index "$one" o`
结果:
8,数组:Bash Shell 只支持一维数组(不支持多维数组),初始化时不需要定义数组大小。
eg:
#! /bin/bash
one=(a b c "erwe")
echo ${one[2]}
echo ${one[3]}
#获取数组的元素
echo "数组的元素是:${one[*]}"
echo "数组的元素是:${one[@]}"
#获取数组的长度
echo "数组元素的个数为:${#one[*]}"
echo "数组元素的个数为:${#one[@]}"
结果: