第一个shell脚本
#固定写法,指定执行脚本使用的shell程序
#!/bin/bash
echo "hello world"
把上述内容输出到hello.sh中
然后使用 bash hello.sh 或者 ./hello.sh 或者 . hello.sh 来执行这个脚本
(另外,./hello.sh表示在当前目录中寻找可执行文件hello.sh)
注意如果使用后两种方式,则需要保证hello.sh具有执行权限,如果没有使用命令添加执行权限
chmod a+x hello.sh
shell 变量
- 变量名直接定义
- 不能有空格
- 等号两边不能有空格
- 不能使用bash里面的关键字
- 不能使用标点符号
- 使用的时候使用${变量名称},注意这里的大括号可以省略,但是在字符串中使用的时候需要添加上大括号
name="zhouyang"
echo $name
echo "my name is ${name}"
只读变量
使用readonly修饰的是只读变量,只能读取不能修改。
#!/bin/bash
myUrl="http://www.w3cschool.cc"
readonly myUrl
myUrl="http://www.runoob.com"
这段代码运行之后会报错
NAME: This variable is read only.
变量类型
- 局部变量 局部变量在脚本或命令中定义,仅在当前shell实例中有效,其他shell启动的程序不能访问局部变量。
- 环境变量 所有的程序,包括shell启动的程序,都能访问环境变量,有些程序需要环境变量来保证其正常运行。必要的时候shell脚本也可以定义环境变量。
- shell变量 shell变量是由shell程序设置的特殊变量。shell变量中有一部分是环境变量,有一部分是局部变量,这些变量保证了shell的正常运行
字符串使用
在shell中定义字符串可以使用 双引号,也可以使用单引号,但是他两有一些不同
- 单引号中不能添加变量
- 单引号中不能使用转义字符
字符串的一些操作
str="hello world"
#截取字符串
substr=${str:2:3}
#字符串长度
${#str}
数组
shell 中使用括号定义数组,中间使用空格分开
array=("name1" "name2" "name3")
array[10]="name11"
array[n]="nameN"
#获取数组的长度
echo ${#array[@]}
# 使用@符号可以获取数组中的所有元素
echo ${array[@]}