Bash Scripts基础I
1.什么是Bash脚本?
- BASH = GNU Bourne-Again Shell,BASH 是 GNU 组织开发和推广的一个项目。
- Bash脚本类似批处理,简单来讲就是把许多的指令集合在一起,并提供循环条件、判断等重要功能,语法简单实用,用以编写程序,大大简化管理员的操作,并可以完成图形工具所无法实现的功能。
2.如何创建一个新的shell脚本?
- 创建包含bash命令的文本文件。文件的第一行应为:
!/bin/bash - 使文件可执行(使用chmod +x scripts)
将文件放置在用户的$PATH的目录中
~/bin – 用于用户的私有程序
/usr/local/bin – 本地开发、系统上的其他人使用的脚本
/usr/local/sbin - 本地开发、由root使用的脚本
直接运行脚本和使用source命令运行脚本是不同的!
脚本调试模式:
!/bin/bash -x
bash -x scripts
3.引用和转义
引用和转义在shell解析字符串时用于去除字符串中特殊字符或保留词语的特殊含义。这会导致按字面处理字符串,而不是展开变量或将其部分内容视作具有特殊含义。
引用有三种类型:
- 弱引用
将字符串放置在双引号中,保留字符串中所有字符的文字值, 、‘、 和!字符除外。换言之,变量扩展和命令扩展在双引号内仍起作用。echo“canIhavea FRUIT”
echo “The current time is $(date +%r).” - 强引用
将字符串放置在单引号中,保留字符串中所有字符的文字值,同时禁用所有扩展:
echo “Make $$$ Fast”
rm ‘untitled folder’ - 转义
非引用的\是转义字符。它保留了下一个字符的文字值。(例如,$PATH是确切的字符串$PATH,而不是PATH变量的内容。)
echo Make \$\$\$ Fast!
ls untitled\ folder
- 弱引用
4.Shell变量
shell变量用于为稍后在脚本中使用的名称指定值,并且仅限于shell命令行或从中声明变量的脚本。
若要定义或指定值:
FRUIT=apple
若要参考或使用变量:
FRUIT
{FRUIT}
5.命令替换
命令替换在子shell中执行指定命令并用命令输出替换脚本中的命令替换。
语法:
(shellcommand)示例:touchdatafile.
(id -un)
TODAY=$(date +%Y-%m-%d)
练习:将/etc下所有以.conf结尾的文件 打包到当前目录,并且名称带有执行时间的信息。
6.算术运算符
算术运算符指的是可以在程序中实现加、减、乘、除等数学运算的运算符。
7.Shell计算命令
<1>用$[]表示数学运算。
<2>用expr表示数学运算。
<3>用let指示数学运算。
<4>用(())表示数学运算。bash内建功能,效率高。
8.循环
for循环用于值列表中的相同命令的重复。
NUM初值为2,步长为2,循环到8
练习:输出10以内整除2
练习:2:10倒计时