shell编程一:初识shell
2016-12-30 10:51
169 查看
Shell脚本同Linux系统中的其它文件一样,可以不使用扩展名。但为了方便识别,通常建议Bash脚本文件名以sh结尾,Tcsh脚本文件以csh结尾。
通常以#开头的都是注释,但这种注释只能注释一行。
$0:保存当前线程或脚本的名称
$*:保存传递给脚本或进程的所有参数
$$:当前进程或脚本的PID号
$!:后台运行的最后一个进程的PID号
$?:用于返回上一条命令是否执行成功。如果成功返回0,否则返回非零数字。
用户自定义变量:
由于变量没有具体的数据类型,因此在定义变量时可以不必定义其类型,直接赋值即可使用。在Shell中变量名称可以由大写字母、小写字母、下划线、数字等符号组成。
变量的作用域:
1.除非使用了export命令,否则在脚本中定义的变量(包括函数中定义的变量)作用域是整个脚本。
2.在命令提示符中定义的变量和使用export定义的变量都是全局变量。全局变量可以在当前用户的任何脚本命令中引用。
下面是一个例子:
1.if后面一定要有空格,两边的中括号和中间的内容也要有空格
2.无论是引用变量还是变量之间的运算都要使用变量引用符“$”
3.expr前面的是Tab键的‘~’原来的形式而不是引号
4.当一个变量完成其作用不会再使用时应该将其从系统中清除(使用unset命令),以释放其占用的系统资源。
vim bash.sh创建一个脚本文件
#!/bin/bash上面是一个Bash脚本的开头,这一行的内容告诉系统应该使用哪一种Shell来执行这个脚本,或者使用哪一种Shell来解释执行这个脚本中的内容。这里表示使用Bash。
通常以#开头的都是注释,但这种注释只能注释一行。
脚本的执行方式:
1.使用bash命令执行脚本bash bash.sh2.使用点号“.”执行脚本
. bash.sh3.设置脚本为可执行
chmod u+x bash.sh ./bash.sh前面两种一般用于执行系统脚本,用户自己编写的脚本一般采用第三种方式进行执行。
接受用户输入:
使用read命令将用户输入保存到变量中,然后读取变量获取用户输入#!/bin/bash #This is a hello shell echo "hello" echo -n "input you name" read -a name
#输出所有的元素 echo ${name[*]}
shell中的变量:
系统中预先定义的变量$0:保存当前线程或脚本的名称
$*:保存传递给脚本或进程的所有参数
$$:当前进程或脚本的PID号
$!:后台运行的最后一个进程的PID号
$?:用于返回上一条命令是否执行成功。如果成功返回0,否则返回非零数字。
用户自定义变量:
由于变量没有具体的数据类型,因此在定义变量时可以不必定义其类型,直接赋值即可使用。在Shell中变量名称可以由大写字母、小写字母、下划线、数字等符号组成。
变量的作用域:
1.除非使用了export命令,否则在脚本中定义的变量(包括函数中定义的变量)作用域是整个脚本。
2.在命令提示符中定义的变量和使用export定义的变量都是全局变量。全局变量可以在当前用户的任何脚本命令中引用。
下面是一个例子:
#!/bin/bash #2016/12/29 RAN=`expr $RANDOM % 10 ` RAN=`expr $RAN + 1` echo "This is a guess game!" echo "range is 1-10!" while true do echo -n "please input you guess number:" read num if [ $num -lt 1 ] || [ 10 -lt $num ] then echo "out of range!" continue fi if [ $num = $RAN ] then echo "you get it!" unset num RAN exit 0 fi if [ $num -lt $RAN ] then echo "you input is so small!" else echo "you input is so big" fi done需要注意的是:
1.if后面一定要有空格,两边的中括号和中间的内容也要有空格
2.无论是引用变量还是变量之间的运算都要使用变量引用符“$”
3.expr前面的是Tab键的‘~’原来的形式而不是引号
4.当一个变量完成其作用不会再使用时应该将其从系统中清除(使用unset命令),以释放其占用的系统资源。
相关文章推荐
- 初识shell脚本
- 初识shell
- 实验报告2:初识Shell 及 常用命令的使用
- shell之awk初识
- shell脚本之初识(一)
- Shell初识
- Shell初识
- 初识Shell
- 笔记:Linux --初识shell
- linux 基础学习之三:bash shell初识 下
- Shell初识
- 初识shell脚本
- Linux重修第二课(初识SHELL)
- shell脚本初识
- Shell脚本高级编程 一 初识sed和gawk
- Linux学习笔记 -- 初识 Shell
- Linux学习-高级shell脚本编程(二)初识sed和gawk
- 初识MongoDB(三)--MongoDB客户端Shell方式访问
- Linux Shell——初识Shell
- shell脚本初识