Shell脚本编程
程序员文章站
2024-02-19 23:58:04
...
1、Shell脚本是什么?
Shell脚本语言为过程式语言,解释运行,依赖于外部程序文件来运行。Shell脚本是命令的堆积,但很多命令不具有幂等性,需要用程序逻辑来判断运行条件是否满足,以避免其运行中发生错误。但并不是所有命令执行失败,都会导致脚本运行终止,命令执行失败,如果产生严重错误,该严重错误指,脚本会exit,任何时候shell脚本或shell解释器遇到exit命令就会终止,或我们使用某种判断机制将其强行终止,或者脚本运行过程中出现语法错误,也可能终止。
2、Shell脚本编辑器
文本编辑器:nano
行编辑器:sed (一次只处理一行,不会占用整个屏幕)
全屏幕编辑器:nano, vi, vim (打开后全屏幕都是编辑器)
[[email protected] exercise]# nano fstab
其中,^o表示保存,^x表示退出,^为Ctrl键;
3、如何写shell脚本?
脚本文件的第一行顶格,给出shebang,即解释器路径,用于指明解释执行当前脚本的解释器程序文件。常见的解释器如下:
#!/bin/bash
#!/usr/bin/python
#!/usr/bin/perl
4、运行脚本
(1)赋予执行权限,并直接运行此程序文件。
chmod +x /PATH/TO/SCRIPT_FILE
/PATH/TO/SCRIPT_FILE
(2)直接运行解释器,将脚本以命令行参数传递给解释器程序,脚本不需要执行权限。
bash /PATH/TO/SCRIPT_FILE
脚本中的空白行会被解释器忽略。脚本中,除了shebang,余下所有以#开头的行都会被视作注释行而被忽略,shell脚本的运行是通过运行一个子shell进程实现的。
5、Shell脚本示例
写一个脚本,实现如下功能:
1)显示/etc目录下所有以大写p或小写p开头的文件或目录本身;
2)显示/var目录下的所有文件或目录本身,并将显示结果中的小写字母转换为大写后显示;
3)创建临时文件/tmp/myfile.XXXX。
#!/bin/bash
echo "Show some under /etc"
ls -d /etc/{p*,P*} 或者 ls -d /etc/[pP]*
echo 显示一个空白行
echo -e "\n" 显示两个空白行
echo "Translate lower to upper"
ls -d /var/* | tr 'a-z' 'A-Z'
echo
echo "Create a temp file"
mktemp /tmp/myfile.XXXX