Shell 脚本编程 基本语法:
Shell 脚本编程语法:
注:
文章来源 http://www.cnblogs.com/yunquan/p/6821850.html
视频来源:https://www.bilibili.com/video/av10565321/index_1.html?t=684
这里每个语句都要有空格控制,不然语法错误
1.文件格式
以.sh后缀
在文件里,第一行写环境变量  
#!/bin/bash
PATH = /usr/local/sbin:/usr/local/bin:/usr/sbin ....
//保证在其他电脑,也能运行(这里是配置环境)
export PATH
exit 0 (=C语言return 0,可以省略)跳出,不继续向下执行
2.执行sh
1)bash .sh文件
2)./.sh文件
3)source   .sh文件
3.read
read -p(提示字符) "请输入你的名字" name(变量)
echo "hello" $name
4.判断式
** test命令:
	-e  该【档名】是否【存在】  (exist)?(常用)
	-f  该【档名】是否是【档案】(file)?(常用)
	-d  该【文件名】是否为【目录】(directory)?(常用)**
	-r  侦测该档名是否是具有【可读】属性?
	-w  侦测该档名是否是具有【可写】属性?
	-x  侦测该档名是否是具有【可执行】属性?
	-eq 两数相等(equal0)
	-ne 两数值不相等(not equal)
	-gt n1 > n2 (greater than)
	-lt n1 < n2 (less than)
	-ge n1 >= n2(greater than or equal)
	-le n1 <= n2(less than or equal)
eg:
    #!/bin/bash  
    PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
    export PATH
    read -p "请输入(Y/N):" yn
    [ "$yn" == "Y" -o "$yn" == "y" ] && echo 	"ok,continue" && exit 0
    [ "$yn" == "N" -o "$yn" == "n" ] && echo "oh,intsdsd" && exit 0
    echo "我不信这个也能出来" && exit 0
shell scripts的预设变数( $0 $1 $2)
这个理解起来很简单,脚本名称就是 $0 然后第一个参数就是 $1 第二个参数就是 $2 ...以此类推
好,我们来个简单的例子
#!/bin/bash
echo "The scripts name is $0"
$0是第一个参数,下面的 -n 参数是判空,是假的就不执行,是真的执行后面语句,最后exit
[ -n "$1" ] && echo "第一个参数是: $1" || exit 0
[ -n "$2" ] && echo "第二个参数是: $2" || exit 0
5.条件判断式
if ...then
if [];then ......
elif [];then ......
else ......
fi(结束语)
exit 0
eg:
#!/bin/bash
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
export PATH
read -p "请输入(Y/N):"  yn
if [ "$yn" == "Y" -o "$yn" == "y" ];then
     	echo "ok,continue"
elif [ "$yn" == "N" -o "$yn" == "n" ];then
    	echo "oh,intsdsd"
else
    	echo "我不信这个也能出来"
fi
exit 0
case ...in ...esac
#!/bin/bash
case $1 in
    "hello")
            echo "hello,how are you"
            ;;
    "")
            echo "你必须输入参数"
            ;;
    *)
            echo "要输入hello啊"
            ;;
esac
function函数
#!/bin/bash
function h()
{
	echo "好帅啊 $1"    //function函数也有变量,$1就是函数的参数,这个和脚本的变量不同
}
case $1(脚本的第一个参数,从bash外面输入的) in
    	"one")
            	h 1
            	;;
    	"two")
            	h 2
            	;;
   	 	"three")
            	h 3
            	;;
    	*)
            	echo "只能用123"
            	;;
	esac
LOOP
while do done
#!/bin/bash
read -p "请输入一个数字:" number
i=0
s=0
while [ "$i" -lt  "$number" ]    //这里的小于号是 -lt 注意!
do
i=$(($i+1))              //这里为什么要两个()?因为()有运算的意思
s=$(($s+$i))              //这里i和s这两行不能有空格,否则失败
done
echo -e "'1+2+...+$number' 的结果是: $s "
6.shell script 的追踪与debug
    -n  不执行script,仅查询语法问题:
-v  执行script前,先将script 的内容输出到屏幕上
-x  将使用到的script内容显示到屏幕上,这是很有用的参数												
											Shell 脚本编程 基本语法:的更多相关文章
- Linux shell脚本编程(二)
		
Linux shell脚本编程(二) 练习:求100以内所有偶数之和; 使用至少三种方法实现; 示例1: #!/bin/bash # declare -i sum=0 #声明一个变量求和,初始值为0 ...
 - Linux shell脚本编程(一)
		
Linux shell脚本编程: 守护进程,服务进程:启动?开机时自动启动: 交互式进程:shell应用程序 广义:GUI,CLI GUI: CLI: 词法分析:命令,选项,参数 内建命令: 外部命令 ...
 - 【Linux】Shell脚本编程(一)
		
Linux shell脚本编程: 守护进程,服务进程:启动?开机时自动启动: 交互式进程:shell应用程序 广义:GUI,CLI GUI: CLI: 词法分析:命令,选项,参数 内建命令: 外部命令 ...
 - Shell脚本编程总结及速查手册
		
Shell是一种编程语言, 它像其它编程语言如: C, Java, Python等一样也有变量/函数/运算符/if语句/循环控制/… 但在开始之前, 我想先理清Shell语言与Shell之间的关系. ...
 - Shell脚本编程具体解释
		
第12章 Shell脚本编程 l Shell命令行的执行 l 编写.改动权限和运行Shell程序的步骤 l 在Shell程序中使用參数和变量 l 表达式比較.循环结构语句和条件结构语句 l ...
 - [转载]关于shell脚本的基本语法
		
关于shell脚本的基本语法 整理于:2014-03-31,何俭飞,mymladdr@sina.com 一.执行 1.shell脚本如果要被执行,一般地必须要有执行权限"x"(除了 ...
 - shell脚本编程基础
		
最近学习了shell脚本编程,感觉自己的脚本写的不太好,所以想把shell脚本相关的知识系统的整理一下,便于以后的学习和使用. 一.shell脚本基础 shell脚本是利用shell的功能 ...
 - Shell脚本编程学习入门 02
		
Shell脚本编程学习入门是本文要介绍的内容,我们可以使用任意一种文字编辑器,比如gedit.kedit.emacs.vi等来编写shell脚本,它必须以如下行开始(必须放在文件的第一行): #! ...
 - Shell脚本编程学习入门 01
		
从程序员的角度来看, Shell本身是一种用C语言编写的程序,从用户的角度来看,Shell是用户与Linux操作系统沟通的桥梁.用户既可以输入命令执行,又可以利用 Shell脚本编程,完成更加复杂的操 ...
 
随机推荐
- 利用 gnuplot_i 在你的 c 程序中调用 GNUPLOT
			
这是一篇非常早曾经写的小文章,最初发表于我的搜狐博客(2008-09-23 22:55).由于自从转移到这里后,sohu 博客就不再维护了,所以把这篇文章也一起挪了过来. GNUPLOT 是一款功能强 ...
 - [C++设计模式] decorator 装饰者模式
			
<head first>中 的样例:咖啡店有各种咖啡饮料,能够往咖啡里面加各种调料变成还有一种饮料.假设使用继承的方式来为每一种饮料设计一个类,代码的复杂度非常easy膨胀,并且会继承父类 ...
 - FOBiz组合模糊查询
			
List list= delegator.findList("Entity",condition , null, null, null, false);其中condition为:组 ...
 - influxdb入门——和mongodb一样可以动态增加字段
			
./influxd [--config yourconfigfile 2> /dev/null] 之所以重定向 因为默认log是stderr 再启动客户端./influx > CREAT ...
 - go语言笔记——切片底层本质是共享数组内存!!!绝对不要用指针指向 slice切片本身已经是一个引用类型就是指针
			
切片 切片(slice)是对数组一个连续片段的引用(该数组我们称之为相关数组,通常是匿名的),所以切片是一个引用类型(因此更类似于 C/C++ 中的数组类型,或者 Python 中的 list 类型) ...
 - getElementByTagName的使用
			
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
 - nova service-list for juno kilo,liberty openstack
 - Map类型介绍与遍历
			
声明:本文非原创: 在程序员开发过程中,Map有着利用率占比是非常高:很多时间我们只知其用,不知其理:写这个随笔的目的也是希望对伙伴们对Map的理解有一点帮助. 类型介绍 java自带各种Map类.统 ...
 - windows 7系统下安装SQL Server 2005图文教程
			
由于工作需要,今天要在电脑上安装SQL Server 2005.以往的项目都是使用Oracle,MS的数据库还真的没怎么用过,安装Oracle已经轻车熟路,但装SQL Server好像还有点小麻烦,所 ...
 - PCB genesis方槽加内角槽孔实现方法
			
一.为什么方槽孔加内角孔 如下图,客户来的方槽或Slot槽有内角尺寸要求,通常直接钻一个Slot槽孔内角是不能满足客户要求的,这时我们做CAM的需采用小钻刀进行处理.加内角孔或内角槽的方式进行处理了. ...