shell脚本基本语法

摘要:
/bin/bashecho"currentshfilename$0${0}$0_file"echo$$#加乘除运算value=`expr2+2`echo"totalvalueis:${value}"a=10b=20ab=`expr$a*$b`echo"$a*$b=$ab"#echo"pleaseinputic:"#readc#ab=`expr$a/$c`#echo"$a/$c=${ab}"#if条件判断if[$a==$b-o$a-gt0];thenecho"a==bora˃0"elseecho"a!

以下是初学shell脚本练习过程,涉及到内容的输出、基本的计算、条件判断(if、case)、循环控制、数组的定义和使用、函数定义和使用

shell脚本内容:

#! /bin/bash
echo "current sh file name $0 ${0} $0_file"
echo $$

#加乘除运算
value=`expr 2 + 2`
echo "total value is:${value}"
a=10
b=20
ab=`expr $a * $b`
echo "$a * $b = $ab"

#echo "please inputi c:"
#read c
#ab=`expr $a / $c`
#echo "$a/$c=${ab}"

#if条件判断
if [ $a == $b -o $a -gt 0 ];
then
echo "a==b or a>0"
else
echo "a!=b"
fi

#字符段判断
str="dog,cat,fish,cattle,pig,rabbit"
echo `expr index $str fish`

file="/usr/tmp/file.test"
if [ -e ${file} ]
then
if [ -w $file ]
then
echo "file enable write"
fi
if [ -s $file ]
then
echo "file is not empty"
else
echo "file is empty"
fi
fi

#循环控制使用,含有continue和break
for ((i=0;i<3;i++))
do echo $i
done

#数组的2种定义和使用
#array=(a b c)
array[0]=a
array[1]=b
array[2]=c
for i in ${array[@]}
do echo $i
done
echo "array length is" ${#array[@]}"; array contain element is:" ${array[@]}

j=5
while [ $j -lt 7 ]
do
echo $j
j=$(($j+1))
done

#case条件判断
name=bird
case "$name" in
dog)
echo $name;;
cat)
echo $name;;
fish)
echo $name;;
rabbit)
echo $name;;
esac

#函数的定义,$1表示第一个函数参数
total=0
count(){
  total=$(($1+$2))
}

#函数的调用
count 10 20
echo "call count function 10+20=$total"

#将结果输出到文件
echo ${array[@]} >> /usr/tmp/file.test

#巧用<<EOF EOF 做注释
<<EOF

read var
echo "You input is $var"
EOF

运行结果:

[root@VM_64_7_centos tmp]# ls -l
total 8
---------- 1 root root 616 Dec 18 13:48 test.sh
[root@VM_64_7_centos tmp]# bash test.sh

current sh file name ./test.sh ./test.sh ./test.sh_file
10470
total value is:4
10 * 20 = 200
a==b or a>0
9
file enable write
file is not empty
0
1
2
a
b
c
array length is 3; array contain element is: a b c
5
6
call count function 10+20=30

[root@VM_64_7_centos tmp]# ./test.sh
-bash: ./test.sh: Permission denied

bash test.sh(sh test.sh)和./test.sh和区别
前者不需要任何权限都可以执行shell脚本,但是后者文件需要有x可执行的权限。

免责声明:文章转载自《shell脚本基本语法》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇VS环境下用thrift-C/C++接口开发hbase应用openwrt的默认/etc/config/network文件是如何生成的?下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

linux下安装oracle 10g 的艰难之旅

在linux下安装oracle是一件令人生畏的事情,其复杂程度远远超过安装linux操作系统本身。如果能够进行成功的安装oracle,那么同时也就顺便掌握了linux一些技术。本文介绍在redhat linux 下安装oracle 10g 的方法。在这里说明一下,Oracle 10g的g是grid 的缩写,意为网格,目前较为前沿的网络计算技术。   Ora...

Shell脚本学习笔记3——控制GPIO

在我参与维护的一个项目中,硬件上有一处设计失误:本应该短接到地的一个GPIO没有短接到地,导致某一个功能不能实现,正式出货的时候会进行改版。 但目前还处于测试阶段,只需要先把这个功能实现出来,方案有两个,一是硬件上飞线去实现,而是通过软件去拉低这个GPIO。鉴于硬件飞线比较麻烦,所以我们选择软件上写一个脚本来实现。 我们可以先通过命令行来控制某一个GPIO...

monkey命令详解(一)

 一、Monkey测试简介 Monkey测试是Android平台自动化测试的一种手段,通过Monkey程序模拟用户触摸屏幕、滑动Trackball、按键等操作来对设备上的程序进行压力测试,检测程序多久的时间会发生异常。 二、Monkey程序介绍  Monkey程序由Android系统自带,使用Java语言写成,在Android文件系统中的存放路径是:...

批处理--md5校检

@echo off rem 获取文件xx.zip的MD5 for /f "delims=" %%i in ('md5.exe xx.zip') do (set md5_var=%%i) echo %md5_var% ::从文件获取MD5 格式MD5=xxxxxxxxxxxxxx ::tokens表示demlims后第一个符号分割的列号 fo...

Linux Shell远程执行命令(命令行与脚本方式)

shell远程执行: 经常需要远程到其他节点上执行一些shell命令,如果分别ssh到每台主机上再去执行很麻烦,因此能有个集中管理的方式就好了。一下介绍两种shell命令远程执行的方法。 前提条件: 配置ssh免密码登陆 对于简单的命令: 如果是简单执行几个命令,则: ssh user@remoteNode "cd /home ; ls" 基本能完成常用的...

Linux的环境变量配置在/etc/profile或/etc/profile.d/*.sh文件中的区别是什么?

@ 目录 login shell non-login shell 它们的区别 Linux的环境变量可在多个文件中配置,如/etc/profile,/etc/profile.d/*.sh,~/.bashrc等,下面说明上述几个文件之间的关系和区别。 bash的运行模式可分为login shell和non-login shell。 login she...