shell脚本也是一门语言

概念

shell是一种解释性的脚本语言
shell脚本里可以写shell内的指令,也可以写linux的系统指令
他可以按照shell脚本里的命令顺序批量处理这指令
在Linux里的作用就是保护内核以及让用户和系统交流的一个工具
windows系统中用户与内核的交流也是通过shell指令,他也是用户与内核沟通的桥梁;

shell语句编程

(1)首先建立一个shell编程文件
可以用的指令:

vim xx.sh
	touch xx.sh
	echo > xx.sh 
	gedit xx.sh

(2)运行环境的配置说明

#!/bin/bash  //声明shell类型 bash shell

(3)脚本语句编写
shell命令+系统命令 (注释行以#开头)
例如:

#!bin/bash
echo -e "hello world"
echo -e "hello\b world"
echo -e "hello world\c"
echo -e "hello world"
echo "当前路径:"
pwd

(4)设置文件的可执行性
新建立的shell脚本是没有可执行性的(x),必须赋予权限,这里用chomd命令

chmod +xxx.sh
或者
chomd 777 xx.sh

(5)执行脚本

./xxx.sh

或者

. xx.sh

变量的定义

shell编程语言里变量没有类型之分
不像C语言有int char float double等等
在shell里变量直接定义直接使用,但使用的时候要加$

(1)直接定义 str=hello //等号两端不能有空格
(2)双引号定义 str=“hello” //保留特殊字符的含义
(3)单引号定义 str = ‘hello’ //去除特殊字符的含义

特殊变量

$0 命令本身
$1 $2 ....$n //取命令行参数
$@//取所有的参数,不包括第0个
$?  //判断上一条命令是否执行成功,成功打印0 失败打印非0
$#//传递参数的个数,不包括第0个
$$//显示当前的进程号
c语言
int a=10;//变量,后边可以对a进行赋值操作
const int a=10;//常量后边不能再对a进行赋值

输入

read num    ##输入num
readonly num=5 		#定义只读变量num

输出

echo就标准输出的意思
命令重定向
> 代表输出重定向(它是覆盖原来的内容)

echo hello >1.txt
这里的echo表示将hello这个字符串写到1.txt文件里,
	如果1.txt不存在,那么就创建一个新的1.txt文件,并且将内容写入文件
	如果1.txt存在并且里边有内容,那么命令将清除文件里的内容,(覆盖原来的内容).
>>输出重定向(不覆盖原内容,追加)
echo world >>1.txt
这里的echo表示将world这个字符串写到1.txt文件里
	如果1.txt不存在,那么就创建一个新的1.txt文件,并且将内容写入文件
	如果文件里存在并且里边有内容,那么他写的内容追加到文件内容的后边不会覆盖原来的数据