bash及脚本程序设计

4.1shell的基本机制

shell 概述

Shell 的功能

shell是命令解释器

文件名替换、变量替换、命令替换

历史替换、别名替换

流程控制的内部命令

Shell的特点

主要用途:批处理,执行效率比算法低

shell是面向命令处理的语言,提供的流程控制结构通过对一些内部命令的解释实现

bash的启动

三种启动方法:注册shell、交互式shell、脚本解释器

启动交互式bash

自动执行的一批命令,即系统级命令

当bash作为注册shell被启动时,自动执行/etc/profile的命令

当bash作为交互式shell启动时,自动执行/etc/bash.bashrc

当bash作为注册shell退出时,自动执行etc/bash.bash.logout

输入重定向

< filename:从数据文件中获取stdin。

<< word:从shell脚本获取数据直到遇到定界符word

当定界符加上单引号,不允许内容替换(变量替换、命令替换等)

<<< word:从命令行获取信息作为标准输入

4.2变量

变量的赋值及使用

bash变量:第一个字符必须是字母,其余字符可以是字母、数字、下划线

存储的内容是字符串

变量名无需声明:赋值addr=20.1.1.254 引用:ftp $addr

引用的方法有两种:$addr 或 ${addr}

echo ${addr}A在引用变量后可以级联A,另一种不可以,相当于引用addrA

shell内部开关:

set -u:当引用一个无定义的变量时,产生一个错误

set +u:当引用一个无定义的变量时,认为是一个空串(默认)

set -x:执行命令前打印出shell替换后的命令及参数,前面用+号区分

set +x:取消上述的设置

在脚本中编辑文件

read读用户的输入,从标准输入中读入一行内容赋值给变量

read name

ed

4.3替换

shell替换:文件名生成

遵循文件通配符规则,按照字典序排列

命令替换(反撇号)

now = `data`