Shell脚本初步学习-鸟哥Linux私房菜基础学习篇
来源:互联网 发布:json多层集合嵌套解析 编辑:程序博客网 时间:2024/05/29 11:43
Shell脚本对于Linux下的系统管理员和运维的人来说很重要。最近看了一下Shell脚本,为了系统地学习一下Shell脚本,我看了一下《鸟哥的Linux私房菜基础学习篇》第三版,其中的第13章讲了一下Shell script的学习。可以到鸟哥的网站:第十三章、學習 Shell Scripts看看这一章的示例,对于学习Shell脚本初学者入门很不错!
编写shell script的良好习惯
1、script的功能;
2、script的版本信息;
3、script的作者与联络方式;
4、script的版本声明方式;
5、script的History (历史记录)
6、script内较特殊的命令,使用“绝对路径”的方式来执行;
7、script执行时需要的环境变量预先声明和设置。
sh01.sh
#!/bin/bash# program:# This program show "Hello World!" in your screen# History:# 2013/04/21 15:31 ccf First releasePATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/binexport PATHecho -e "Hello World! \a \n"exit 0
sh02.sh
sh02.sh#!/bin/bash# Program# User inputs his first name and last name. Program shows his full name.# History# 2013/04/21,by ccf,First releasePATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/binexport PATHread -p "Please input your first name: " firstname # 提示用户输入read -p "Please input your last name: " lastname # 提示用户输入echo -e "\nYour full name is: $firstname $lastname" #结果由屏幕输出
sh03.sh
#!/bin/bash# Program#Program creates three files, which named by user's input#and date command# History:# 2013/04/21 Sunday ccf First releasePATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/loacl/sbin:~/binexport PATH# 1.让用户输入文件名,并取得fileuser这个变量echo -e "I will use 'touch' command to create 3 files." # 纯粹显示信息read -p "Please input your filename: " fileuser # 提示用户输入# 2.为了避免用户随意按【Enter】,利用变量功能分析文件名是否有设置filename=${fileuser:-"filename"} # 开始判断是否有配置文件名# 3.开始利用date命令来取得所需要的文件名了date1=$(date --date='2 days ago' +%Y%m%d) # 前两天的日期date2=$(date --date='1 days ago' +%Y%m%d) # 前一天的日期date3=$(date +%Y%m%d) # 今天的日期file1=${filename}${date1} # 下面三行在配置文件名file2=${filename}${date2}file3=${filename}${date3}# 4.创建文件名touch "$file1"touch "$file2"touch "$file3"
sh04.sh
#!/bin/bash# Program:# User inputs 2 integer numbers; program will cross these two numbers.# History:# 2013/04/21 ccf19881030 First releasePATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/binexport PATHecho -e "You should input 2 numbers, I will cross them!\n"read -p "first number: " firstnumread -p "second number: " secondnumtotal=$(($firstnum * $secondnum))echo -e "\nThe result of $firstnum * $secondnum is ==> $total"
sh05.sh
#!/bin/bash#program:#User input a filename, program will check the follwing:#1.) exist? 2.) file/directory? 3.) file permissions#History:# 2013/05/14 ccf First ReleasePATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/binexport PATH#1、让用户输入文件名,并且判断用户是否真的有输入字符串echo -e "Please input a filename, I will check the filename's type and permission. \n\n" #纯粹显示信息read -p "Input a filename : " filename #提示用户输入test -z $filename && echo "You MUST input a filename." && exit 0#2、判断文件是否存在,若不存在则显示信息并结束脚本test ! -e $filename && echo "The filename '$filename' DO NOT exist" && exit 0#3、开始判断文件类型和属性test -f $filename && filetype="regular file"test -d $filename && filetype="directory"test -r $filename && perm="readable"test -w $filename && perm="$perm writeable"test -x $filename && perm="$perm executable"#4、开始输出信息!echo "The filename: $filename is a $filetype"echo "And the permission are : $perm"
sh06.sh
#!/bin/bash# Program:# This program shows the user's choice# History:# 2013/05/14 ccf First releasePATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/binexport PATHread -p "Please input (Y/N) : " yn[ "$yn" == "Y" -o "$yn" == "y" ] && echo "OK, continue" && exit 0[ "$yn" == "N" -o "$yn" == "n" ] && echo "Oh, interrupt!" && exit 0echo "I don't know what your choice is" && exit 0
可以通过sh sh01.sh或者chmod a+x sh01.sh;./sh01.sh来执行shell脚本。
- Shell脚本初步学习-鸟哥Linux私房菜基础学习篇
- linux基础学习-shell脚本学习(鸟哥私房菜)
- 鸟哥的Linux私房菜基础学习篇(第三版)之第十三章:shell scripts
- 鸟哥的Linux私房菜(基础篇)- 第十三章、学习 Shell Scripts
- Linux shell脚本基础学习
- Linux shell脚本基础学习
- Linux shell脚本基础学习
- 【shell脚本学习】1.linux shell基础
- 鸟哥私房菜shell script的脚本学习
- 鸟哥的Linux私房菜:基础学习篇
- 鸟哥的Linux私房菜:基础学习篇
- 鸟哥的Linux私房菜 基础学习篇学习计划
- 《鸟哥的Linux私房菜--基础学习篇》 读书笔记
- 鸟哥的Linux私房菜:基础学习篇(…
- 鸟哥的Linux私房菜基础篇-学习笔记
- 【鸟哥的linux私房菜-学习笔记】Shell script基础
- 详细介绍Linux shell脚本基础学习
- 详细介绍Linux shell脚本基础学习
- hdu1075What Are You Talking About(Trie tree)
- C语言面向对象的实现---多态性
- PM 如何使自己的观点有说服力,让技术人员觉得你说得有道理,愿意按你说的做
- 嵌入式系统专业 要学的课程
- linux下安装ActiveMQ
- Shell脚本初步学习-鸟哥Linux私房菜基础学习篇
- CppUnit测试框架入门
- ubuntu下安装配置Django
- woj 1012 滚动数组
- E(HDu3037Lucas比较综合的一道数论题目)
- java反射详解
- UBuntu 安装和修改Apache2端口
- alogorithm: random walk and a knight's tour
- 给定年份和该年中的某一天,返回该天所处的月份和月中的日子