一:什么是shell
shell是用C语言编写的程序,它是用户使用Linux的桥梁。
它既是一种命令语言,又是一种程序设计语言。
1.编写一个shell脚本(使用vi或者vim):
#!/bin/bash
echo "hello world!" #输出
#!是一个约定标记,它告诉系统这个脚本需要什么解释器来执行,即使用哪一种shell
运行shell
一般情况下,权限是不够的,需要:
chmod a+x ./name.sh
chmod 777 ./name.sh
chmod +x ./name.sh
我使用过这三个,都能使name.sh的权限改变,且都能执行
如有不懂chmod的童鞋,点这里查看
二:变量
定义一个变量:
name="1230"#注意变量名和等号之间不能有空格
命名变量的规则:
1.命名只能使用英文字母,数字和下划线,不能以数字开头。
2.中间不能有空格(等号两边都不能有空格),可以使用下划线 _。
3.不能使用标点符号。
4.不能使用bash里的关键字(可用help命令查看保留关键字)。
使用变量:
在变量名前面加美元符
如:
#!/bin/bash
name='123'
echo $name
echo ${name}#或者这样,推荐
只读变量:
使用readonly命令可以将变量定义为只读变量,而只读变量的值不能被改变
如:
#!/bin/bash
name='123'
readonly name
echo $name
name=123
要改变name的变量的时候会报错:
如使用上述语句来运行,结果如下:
[root@master ~]# ./1.sh
123
./1.sh: line 5: name: readonly variable
它会报错,所以只读变量的值不能被改变
删除变量:
使用unset命令可以删除变量
如:
#!/bin/bash
name='123'
echo $name#有输出
unset name
echo $name#无输出
#!/bin/bash
name='123'
echo $name
readonly name
unset name
echo $name
发现,只读变量无法取消设置,也就是说,unset不能删除只读变量
最后:
当运行shell时,会同时存在三种变量:
1.局部变量:仅对当前shell有效,在其他shell中无效
2.环境变量:所有shell都能访问环境变量,有些程序需要环境变量来保证正常运行
3.shell变量:是由shell程序设置的特殊变量。有一部分是局部变量,有一部分是环境变量,这些变量保证了shell的正常运行