shell script 基本语法
几个符号的意义
$#:代表后接的参数『个数』,以上表为例这裡显示为『 4 』;
$@:代表『 "$1" "$2" "$3" "$4" 』之意,每个变数是独立的(用双引号括起来);
$*:代表『 "$1c$2c$3c$4" 』,其中 c 为分隔字元,预设为空白键, 所以本例中代表『 "$1 $2 $3 $4" 』之意。
shift
[root@www scripts]# vi sh08.sh
#!/bin/bash
echo "Total parameter number is ==> $#"
echo "Your whole parameter is ==> '$@'"
shift # 进行第一次『一个变数的 shift 』
echo "Total parameter number is ==> $#"
echo "Your whole parameter is ==> '$@'"
shift 3 # 进行第二次『三个变数的 shift 』
echo "Total parameter number is ==> $#"
echo "Your whole parameter is ==> '$@'"
结果
[root@www scripts]# sh sh08.sh one two three four five six #给予六个参数
Total parameter number is ==> 6 #最原始的参数情况
Your whole parameter is ==> 'one two three four five six'
Total parameter number is ==> 5 #第一次偏移,看底下发现第一个 one 不见了
Your whole parameter is ==> 'two three four five six'
Total parameter number is ==> 2 #第二次偏移掉三个,two three four 不见了
Your whole parameter is ==> 'five six'
if …. then
if [ 条件判断式一 ]; then
当条件判断式一成立时,可以进行的指令工作内容;
elif [ 条件判断式二 ]; then
当条件判断式二成立时,可以进行的指令工作内容;
else
当条件判断式一与二均不成立时,可以进行的指令工作内容;
fi
&& 代表 AND ;
|| 代表 or ;
所以,在使用中括号的判断式中, && 及 || 就与指令下达的状态不同了。
[ "$yn" == "Y" -o "$yn" == "y" ] 可替换为 [ "$yn" == "Y" ] || [ "$yn" == "y" ]
case … esac
case $变数名称 in
"第一个变数内容")
程式段
;;
"第二个变数内容")
程式段
;;
*)
不包含第一个变数内容与第二个变数内容的其他程式执行段
exit 1
;;
esac
function
function fname() {
程式段
}
循环
while [ condition ]
do
程式段落
done
until [ condition ]
do
程式段落
done
for var in con1 con2 con3 ...
do
程式段
done
for (( 初始值; 限制值; 执行步阶 ))
do
程式段
done
shell script 基本语法的更多相关文章
- shell script入门
从程序员的角度来看, Shell本身是一种用C语言编写的程序,从用户的角度来看,Shell是用户与Linux操作系统沟通的桥梁.用户既可以输入命令执行,又可以利用 Shell脚本编程,完成更加复杂的操 ...
- shell及脚本4——shell script
一.格式 1.1 开头 必须以 "# !/bin/bash" 开头,告诉系统这是一个bash shell脚本.注意#与!中间有空格. 二.语法 2.1 数值运算 可以用decla ...
- shell script
一.shell script的编写与执行 1.shell script 的编写中还需要用到下面的注意事项: a.命令的执行是从上到下,从左到右地分析与执行 b.命令.参数间的多个空白都会被忽略掉 c. ...
- shell script 的追踪与 debug
shell script 的追踪与 debug scripts 在运行之前,最怕的就是出现语法错误的问题了!那么我们如何 debug 呢?有没有办法不需要透过直接运行该 scripts 就可以来判断是 ...
- linux shell 常用基本语法
转自网络,真正来源不详.... 一. Linux基本命令 1.1. cp命令 该命令的功能是将给出的文件或目录拷贝到另一文件或目录中,功能十分强大. 语法: cp [选项] 源文件或目录 目标文件或 ...
- linux基础之Shell Script入门介绍
本文介绍下,学习shell script编程的入门知识,通过几个入门实例,带领大家走进shell script的神圣殿堂,呵呵,有需要的朋友参考下. 本文转自:http://www.jbxue.com ...
- bash shell学习-shell script基础 (笔记)
A chain no stronger than its weakest link. "一着不慎,满盘皆输" 参考资料:鸟哥的Linux私房菜 基础学习篇(第三版) Linux ...
- 菜鸟教程之学习Shell script笔记(下)
菜鸟教程Shell script学习笔记(下) 以下内容是学习菜鸟教程之shell教程,所整理的笔记 菜鸟教程之shell教程:http://www.runoob.com/linux/linux-sh ...
- 菜鸟教程之学习Shell script笔记(中)
菜鸟教程Shell script学习笔记(中) 以下内容是学习菜鸟教程之shell教程,所整理的笔记 菜鸟教程之shell教程:http://www.runoob.com/linux/linux-sh ...
随机推荐
- java静态代理
WorkIF.java package com.wzh.test; public interface WorkIf { void doWork(String name);} work.java pac ...
- ruby api 2.1新增改变
-> 这个符号可以替换lambda%i 生成符号数组 %i(foor bar baz) #[:foo,:bar:baz]def 定义方法 eg: def foo(x: 1); puts; end ...
- cshell学习
一. 文件的读写执行: 1)读:可以显示该文件的内容 2)写:可以编辑或者删除它 3)执行:如果该文件是一个shell脚本或者程序. 如果希望一次设置目录下所有文件的权限,可使用:chmod 644 ...
- [ActionScript 3.0] AS3中Loader无法彻底卸载
我测试发现,实例化的Loader无法彻底卸载,同行有没有办法,求赐教! import flash.display.Loader; import flash.net.URLRequest; import ...
- bootstrap与jqueryui按钮冲突的解决
bootstrap与jqueryui按钮冲突的解决 (2013-10-15 14:09:36)转载▼ 标签: 情感 分类: jQuery 参考: http://getbootstrap.com/jav ...
- springMVC之HelloWorld
一.总结 1.web项目一定要把引用的jar包放在WEB-INF/lib下(common-logging1.2,spring4.1.6所有包,其实不需要那么多,懒得筛选了,) 2.web.xml中要初 ...
- jBox 弹出窗口中焦点设置问题
jBox 是一个不错的组件库,可以用来比较简单地弹出窗口. 我希望在 jBox 弹出窗口之后,自动将焦点设置到子窗口的某个输入框中,可是发现并不容易. 在 jBox 2.3 中,提供了如下的增强. ...
- linux多线程
#include <pthread.h> pthread_t pid; pthread_create(&pid, 0, pFunc, pArgs); //创建线程(linux下线程 ...
- python学习(一):环境安装及HelloWorld
一.安装注意事项: 在安装python的第三方库时,(平台是win)要 注意所下载的包的版本,一要与所安装的python版本相对应,同时还有注意操作系统的位数(32位还是64位).下载好后,先将c:\ ...
- LoadRunner界面分析(一)
1.Virtual User Generator 2.新建脚本的方式 3.Task模式 4.Recording Options选项 5.Run-Time setting选项