shell编程:
shell既是一种命令语言,又是一种程序设计语言。
bash 内定的shell
行命令扩充 \
shell 脚本的运行方法
(1) ./ 文件名
(2)bash 文件名
(3)export PASH=当前路径:PATH
文件名
编写一个简单的脚本文件:
#!/bin/bash
echo " this is a file name is $0;"*
echo "welcome to read it ."
shell程序的位置参数与脚本
(1)bash 变量不需要声明,默认情况下变量被看做是字符串
位置参数是指由系统提供的参数
$0表示程序的名字,
$1表示传递给程序的第一个参数,以此类推($2$3$4$5)
$# :传递给程序的总的参数数目
$* :传递给程序的所有参数,与$@有差异
$? :shell程序在shell中退出的情况,正常退出返回0,反之为非0值(shell程序的退出状态取决于它的最后一条命令的退出状态)
$$:shell脚本进程ID号
$! :最后一次后台进程的ID号
shell变量
$HOME:当前用户目录
$PASH: 搜索目录链表,以冒号分割
$PS1: 命令提示符 普通用户$ root 用户 #
$PS2:二级提示符,提示后续输入
$IFS 内部域分隔符
变量声明:
declare [options] [name[=value]]
typeset [options] [name[=value]]
常用选项options:
-a 声明一个数组
-f 声明一个函数
-i 声明一个整数
-r 声明只读变量
-x 全局变量(可以被子进程访问到)
查看变量: set | grep name
删除变量: unset name
变量引用:$ name
shell 中的双引号、单引号、反斜线的使用
单引号:用单引号将值括起来,则不允许对括号中的变量进行替换,且不做shell解释,即屏蔽了括号中特殊字符的含义
反斜线(\):去除某些字符(如$)的特殊含义并按照字面意思处理
控制结构语句:
if a then b fi
if a then b else c fi
if a then b elif a2 then c else d fi
for语句语法:
for variable [in argument-list] // i in
do
command-list
done
while语句
while expression :表示无限循环
do
command-list
done
until语句
until expression //直到条件为真时退出循环体
do
command-list
done
case语句
case variable in
pattern1) command-list1
;;
pattern2) command-list2
;;
…
patternN) command-listN
;;
esac