一、Shell简介:
Shell既是一种命令语言,又是一种程序设计语言。作为命令语言,它交互地解释和执行用户输入的命令;作为程序设计语言,它定义了各种变量和参数,并提供了许多在高级语言中才具有的控制结构,包括循环和分支。
Shell执行命令有两种方式:
1、交互式(interactive):解释执行用户输入的命令,用户输入一条,它就解释执行一条;
2、批处理(Batch):用户事先编写一个Shell脚本(shell script),脚本里面有很多命令,让shell一次把命令执行完,而不需要用户一条一条地敲命令。
二、学习Shell脚本:
在linux系统中打开终端,创建一个扩展名为.sh的文件:
vim shelltest.sh
进入编辑器vim,i命令是进去编辑模式,输入代码
#!/bin/bash echo "Hello World !"
退出编辑模式,命令:wq保存并退出文件。
执行shell:
bash shelltest.sh
三、编辑第一个脚本--“打招呼”
#!/bin/bash
#Script follows here:
echo "What is your name?"
read PERSON
echo "Hello, $PERSON"
read命令:获取输入值并赋值给变量PERSON,最后输出。
四、shell变量:
定义变量:变量名=“变量值”(字符要加引号,数字不用加引号)
定义变量时,有几点需要注意:定义变量名不加 $,已经定义过的变量在使用时要加 $。
只读变量:readonly 变量名
删除变量:unset 变量名
特殊变量:
变量 | 含义 |
---|---|
$0 | 当前脚本的文件名 |
$n | 传递给脚本或函数的参数(命令行参数)。n 是一个数字,表示第几个参数。例如,第一个参数是$1,第二个参数是$2。 |
$# | 传递给脚本或函数的参数个数。 |
$* | 传递给脚本或函数的所有参数。 |
$@ | 传递给脚本或函数的所有参数。被双引号(" ")包含时,与 $* 稍有不同,下面将会讲到。 |
$? | 上个命令的退出状态,或函数的返回值。 |
$$ | 当前Shell进程ID。对于 Shell 脚本,就是这些脚本所在的进程ID。 |