Shell脚本编程
1. shell简介
功能
(1)如图所示,shell相当于一个命令解释器--外层应用编译好的程序通过shell将命令转换为机器语言,然后再调用内核执行,执行完之后再返回结果给shell,shell再将结果(机器语言)转换为我们所能看懂的结果集合。
(2) shell给用户提供了一个可以敲命令/程序的操作界面
环境
Bash:简单易用,便捷通过历史命令。
2. 第一个shell脚本(Hello World)
(1)创建并编写:vi test.sh #vi是打开文本编辑器 sh是扩展名
#!/bin/bash
echo "Hello World !" echo 命令用于向窗口输出文本。
#!是一个约定的标记,它告诉系统这个脚本需要什么解释器来执行,即使用哪一种shell
(2) 运行(两种方式)
1.赋可执行权并执行:chmod +x ./test.sh #使脚本具有执行权限 ./test.sh #执行脚本
2.命令执行:/bin/sh test.sh
3. shell变量
(1) 命名规则
命名只能使用英文字母,数字和下划线,首个字符不能以数字开头。
中间不能有空格,可以使用下划线(_)。
不能使用标点符号。
不能使用bash里的关键字(可用help命令查看保留关键字)。
例如:A=123 #A为变量名 123为变量值
$A #引用变量
(2) 变量类型 (运行shell时,会同时存在三种变量)
4.Shell流程控制
if
if condition
then
command1
command2
...
commandN
fi
if else
if condition
then
command1
command2
...
commandN
else
command
fi
if else-if else
if condition1
then
command1
elif condition2
then
command2
else
commandN
fi
for 循环
for var in item1 item2 ... itemN
do
command1
command2
...
commandN
done
while 语句
while condition
do
command
done
until 循环
until condition
do
command
done
case
Shell case语句为多选择语句。可以用case语句匹配一个值与一个模式,如果匹配成功,执行相匹配的命令。
case 值 in
模式1)
command1
command2
...
commandN
;;
模式2)
command1
command2
...
commandN
;;
esac
5. Shell 输入/输出重定向
大多数linux 系统命令从你的终端接受输入并将所产生的输出发送回??到您的终端。一个命令通常从一个叫标准输入的地方读取输入,默认情况下,这恰好是你的终端。同样,一个命令通常将其输出写入到标准输出,默认情况下,这也是你的终端。
描述符 0 通常是标准输入(STDIN),1 是标准输出(STDOUT),2 是标准错误输出(STDERR)
输入重定向
command1 < file1
这样,本来需要从键盘获取输入的命令会转移到文件读取内容。
输出重定向
command1 > file1
上面这个命令执行command1然后将输出的内容存入file1。
注意任何file1内的已经存在的内容将被新内容替代。如果要将新内容添加在文件末尾,请使用>>操作符。
原文:https://www.cnblogs.com/huangdandan/p/11892833.html