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 ...
随机推荐
- whois配置
$itemRules = array ( 'default' => array ( 'registry_domain_id' => 'Registry Domain ID:(.*?)', ...
- Android listview中使用checkbox
最近比较忙碌,我也不知道忙的什么东西,打算写的博客写了一半,还没写完,今天先扯一扯项目中遇到的一个问题,一方面防止以后遇到这个问题忘记如何解决,另一方面希望可以提供给遇到同样问题的朋友一个思路.下面开 ...
- 转载__Android开源项目(二)
http://www.csdn.net/article/1970-01-01/2815145 GitHub上的开源项目不胜枚举,通过这些项目,也能让开发者在应用开发过程中事半功倍,作为开发者的你,在用 ...
- ArrayList,Vector线程安全性测试
import java.util.ArrayList; import java.util.List; //实现Runnable接口的线程 public class HelloThread implem ...
- 使用matplot绘图 @python
1. 使用csv 模块读取数据 2. 定义label 3. 绘图,调参 #!/usr/bin/env python # coding=utf-8 import sys import matplotli ...
- Objective-C: 字符串NSString与NSMutableString
字符串算是OC中非常重要和常用的一部分内容,OC中的字符串与我之前在学习C,C++,Java中的字符串有一定的不同,它非常类似于C++中容器的概念,但用法却与之还是有很大的不同,也许是因为OC的语法就 ...
- compass项目监控文件报 /usr/bin/env 找不到文件
1 找到ruby执行文件目录 $ wherris ruby ruby: /usr/lib/ruby /home/rudy/.rbenv/shims/ruby 2 设置软链接 sudo ln -s /h ...
- request.setCharacterEncoding 和常用内置对象 跳转
1.直接转码 new String(name.getBytes("ISO8859_1"),"GBK") 2. request.setCharactorEncod ...
- /dev/shm
/dev/shm/是linux下一个特殊的目录,因为这个目录不在硬盘上,而是在内存里. /dev /shm/需要注意的一个是容量问题,在linux下,它默认最大为内存的一半大小,使用df -h命令可以 ...
- wall 和panel有啥区别
Panel指的是一个面板,用它来对一些控件进行分组,就像组合框控件,即Visual Studio里面用的Group Box Control:而在一些软件界面里面也可以表现为工具条,比如编辑工具条.文件 ...