/*C++教程网笔记,感谢Mr.J老师*/
1、什么是shell程序
2、本地变量
3、位置参数
4、数组
一、什么是shell程序
1)shell的解释执行功能
单条指令(多条命令)交互式的 /shell脚本(编程)----->shell----->系统调用------>kernel(内核)
2)以文件形式存放批量的Linux命令集合,该文件能够被shell解释执行,这种文件就是shell脚本程序
3)通常由一段Liunx命令(外部命令)、shell命令(内部命令)、控制语句以及注释语句构成
4)shell脚本的编写
shell脚本是纯文本文件,可以使用任何文本编辑器编写
shell脚本通常以.sh(类似dos下的bat文件)作为后缀名
5)shell程序编程主要内容
变量:本地变量,环境变量,位置参数
输入输出:read/echo或者printf
条件测试:整数测试,逻辑测试,字符串测试
控制语句:条件/循环/分支
函数
常用shell程序内置指令:declare/export/eval/trap等
6)shell程序的第一行
第一行:指定用哪个程序来编译和执行脚本
#!/bin/bash
#!/bin/sh
#!/biin/csh
注释行:使用(#)符号
7)变量概述
变量名:变量名必须以字母或者下划线开头,后面可以跟字母、数字或下划线,任何其它字符都标志变量的结束
变量类型:根据变量的作用域,变量可以分为本地变量和环境变量。本地变量只在创建它们的shell程序中可用。而环境变量则在shell中的所有用户进程中可用,通常也称为全局变量。
变量赋值:variable=value #等号之间注意不要有空格,如果要给变量赋空值,可以在等号后面跟一个换行符
8)变量常见操作
显示变量的值:echo $variable 或者 echo${variable}
$符取变量,加上{},变量限定范围
清除变量:unset variable
显示所有变量:set
9)环境变量和只读变量
环境变量称为全局变量,按照惯例需要大写
可被所有的shell环境下访问,如果父shell进程产生了子shell进程,则环境变量可被“继承”,并复制--------------------------刚开始学,不太理解。。。。。。。对系统不懂。。。。。慢慢来。。。
#export LANG
#export添加环境变量
只读变量:是指不能被清楚或重新赋值的变量
#readonly myvar
10)位置参数(命令行参数)
位置参数是一组特殊的内置变量,通常被shell脚本用来从命令行接受参数,或被函数用来保存传递给它的参数。类似域c中的argc,argv.参数表百度一下。。。。。。
11)数组
数组定义:arr=(math english chinese)
数组初始化:arr=(math english chinese)
数组引用:
引用变量:${arr[0]}
数组个数:${#arr[*]}
所有元素:${arr[*]}
数组赋值:arr[0]=chemical