2.case
case :表达式可以用来匹配一个给定的字符串,而不是数字。
case ... in
...) do something here ;;
esac
让我们看一个例子。 file命令可以辨别出一个给定文件的文件类型,比如:
file lf.gz
这将返回:
lf.gz: gzip compressed data, deflated, original filename,
last modified: Mon Aug 27 23:09:18 2001, os: Unix
我们利用这一点写了一个叫做smartzip的脚本,该脚本可以自动解压bzip2, gzip 和zip 类型的压缩文件:
#!/bin/sh
ftype=`file "$1"`
case "$ftype" in
"$1: Zip archive"*)
unzip "$1" ;;
"$1: gzip compressed"*)
gunzip "$1" ;;
"$1: bzip2 compressed"*)
bunzip2 "$1" ;;
*) echo "File $1 can not be uncompressed with smartzip";;
esac
您可能注意到我们在这里使用了一个特殊的变量$1。该变量包含了传递给该程序的第一个参数值。
也就是说,当我们运行:
smartzip articles.zip
$1 就是字符串 articles.zip
3. selsect
select 表达式是一种bash的扩展应用,尤其擅长于交互式使用。用户可以从一组不同的值中进行选择。
select var in ... ; do
break
done
.... now $var can be used ....
下面是一个例子:
#!/bin/sh
echo "What is your favourite OS?"
select var in "Linux" "Gnu Hurd" "Free BSD" "Other"; do
break
done
echo "You have selected $var"
下面是该脚本运行的结果:
What is your favourite OS?
1) Linux
2) Gnu Hurd
3) Free BSD
4) Other
#? 1
You have selected Linux
4.loop
loop表达式:
while ...; do
....
done
while-loop 将运行直到表达式测试为真。will run while the expression that we test for is true.
关键字"break" 用来跳出循环。而关键字”continue”用来不执行余下的部分而直接跳到下一个循环。
for-loop表达式查看一个字符串列表 (字符串用空格分隔) 然后将其赋给一个变量:
for var in ....; do
....
done
在下面的例子中,将分别打印ABC到屏幕上:
#!/bin/sh
for var in A B C ; do
echo "var is $var"
done
下面是一个更为有用的脚本showrpm,其功能是打印一些RPM包的统计信息:
#!/bin/sh
# list a content summary of a number of RPM packages
# USAGE: showrpm rpmfile1 rpmfile2 ...
# EXAMPLE: showrpm /cdrom/RedHat/RPMS/*.rpm
for rpmpackage in $*; do
if [ -r "$rpmpackage" ];then
echo "=============== $rpmpackage =============="
rpm -qi -p $rpmpackage
else
echo "ERROR: cannot read file $rpmpackage"
fi
done
这里出现了第二个特殊的变量$*,该变量包含了所有输入的命令行参数值。
如果您运行showrpm openssh.rpm w3m.rpm webgrep.rpm
此时 $* 包含了 3 个字符串,即openssh.rpm, w3m.rpm and webgrep.rpm.
分享到:
相关推荐
Linux Shell 脚本编程基础知识点总结 Linux 脚本编写基础 1.1 语法基本介绍 * `#!` 符号用来告诉系统它后面的参数是用来执行该文件的程序 * 在 Linux 中,使用 `/bin/sh` 来执行程序 * 编辑好脚本后,需要使其可...
### Linux Shell脚本全面学习知识点概述 #### 一、Linux脚本编写基础 **1.1 语法基本介绍** **1.1.1 开头** - **解释**: 每个Shell脚本都需要以 `#!/bin/sh` 开始,这行被称为shebang,用于指示系统如何执行此...
Linux Shell脚本是一种强大的自动化工具,它允许用户编写一系列命令以执行特定任务,尤其是在Linux操作系统中。本篇文章将深入探讨Linux Shell脚本的基础知识,包括语法、变量、环境变量、命令以及流程控制。 首先...
shell学习基本命令,可以帮助初学者快速掌握较全面的shell脚本知识
### Linux Shell 脚本全面学习 #### 一、Linux脚本编写基础 ##### 1.1 语法基本介绍 **1.1.1 开头** - **Shebang**: 在 Linux shell 脚本中,第一行必须是 shebang 行,格式为 `#!/bin/sh` 或者 `#!/usr/bin/env...
本书的第三版包含了全面的Shell脚本知识,不仅适合初学者入门,也适合经验丰富的系统管理员和开发人员进一步提高。 Linux系统中常用的Shell类型有多种,例如bash、ksh、csh、zsh等,不同的Shell有不同的语法和特性...
在IT领域,Linux Shell脚本是系统管理员和开发者日常工作中不可或缺的工具,它允许用户通过命令行接口自动化执行一系列任务。《Linux shell 脚本攻略-第二版》是一本深受赞誉的书籍,旨在帮助读者深入理解并掌握...
《Linux命令行与Shell脚本编程大全》是一本专为Linux初学者编写的经典教材,旨在帮助读者深入理解和掌握Linux操作系统中的基本命令行操作以及Shell脚本编程技术。这本书全面覆盖了从基础到进阶的各种主题,对于想要...
Linux Shell脚本全面学习 Shell脚本是Linux操作系统中一种强大的工具,用于自动化日常任务,进行文件管理和系统管理。在Linux环境中,shell脚本是一种基于文本的编程语言,它允许用户编写一系列命令,以实现批处理...
"Linux Shell 脚本攻略 中文 第三版和源码"提供了全面的学习资源,帮助你深入理解并熟练掌握Shell脚本编程。 首先,让我们了解什么是Linux Shell。Linux Shell是操作系统内核与用户交互的界面,它是命令行解释器,...
在IT领域,Linux操作系统及其相关的shell脚本编程是不可或缺的一部分,尤其对于系统管理员、开发者以及对计算机技术有深厚兴趣的学习者来说。这份“Linux学习资料及shell脚本实例”涵盖了Linux的基础知识和实用技巧...
Linux-11shell脚本全面学习.docx
Linux-11shell脚本全面学习.pdf