linux 脚本接受变量,shell脚本接收来自命令行传入的参数:

第一个参数用$1表示,第二个参数用$2表示,以此类推。。

写一个简单的传参数脚本来测试:

#!/bin/bash

if [ $1 =="start" ]

then

echo"do start"

elif [ $1 =="stop" ]

then

echo"do stop"

else

echo "Pleasemake sure the positon variable is start or stop."

fi

保存为test.sh执行./test.sh start或./test.sh stopawk的结果如何写入数组中:写了一个简单的功能:B=(`awk  '/insert overwrite table/ {print $4}' $1`)

echo ${B[1]}

echo ${#B[@]}输出数组元素个数如何在变量中定义双引号:用单引号lstr='tblist="1111"'

echo $lstr

tblist="1111"grep获取行号:grep -nw "k=0" automan.shif判断:

?b当file存在并且是块文件时返回真

-c 当file存在并且是字符文件时返回真

-d 当pathname存在并且是一个目录时返回真

-e 当pathname指定的文件或目录存在时返回真

-f 当file存在并且是正规文件时返回真

-g 当由pathname指定的文件或目录存在并且设置了SGID位时返回为真

-h 当file存在并且是符号链接文件时返回真,该选项在一些老系统上无效

-k 当由pathname指定的文件或目录存在并且设置了“粘滞”位时返回真

-p 当file存在并且是命令管道时返回为真

-r 当由pathname指定的文件或目录存在并且可读时返回为真

-s 当file存在文件大小大于0时返回真

-u 当由pathname指定的文件或目录存在并且设置了SUID位时返回真

-w 当由pathname指定的文件或目录存在并且可执行时返回真。一个目录为了它的内容被访问必然是可执行的。

-o 当由pathname指定的文件或目录存在并且被子当前进程的有效用户ID所指定的用户拥有时返回真。

-eq等于

-ne不等于

-gt大于

-lt小于

-le小于等于

-ge大于等于

-z空串

=两个字符相等

!=两个字符不等

-n非空串

-e filename如果filename存在,则为真

-d filename如果filename为目录,则为真

-f filename如果filename为常规文件,则为真

-L filename如果filename为符号链接,则为真

-r filename如果filename可读,则为真

-w filename如果filename可写,则为真

-x filename如果filename可执行,则为真

filename1 -nt filename2如果filename1比filename2新,则为真

filename1 -ot filename2如果filename1比filename2旧,则为真

-zstring如果string长度为零,则为真

-nstring如果string长度非零,则为真

string1 = string2如果string1与string2相同,则为真

string1 != string2如果string1与string2不同,则为真

num1 -eq num2等于

num1 -nenum2不等于

num1 -ltnum2小于

num1 -lenum2小于或等于

num1 -gtnum2大于

num1 -genum2大于或等于

实例1 判断参数是否为空:

if [ -z"$1" ];then

echo "please input parameter"

exit

else

echo "parameter 1: $1"

fi

实例2判断参数个数小于3个:

if [ $# -lt 3 ] ;then

echo "please input 3parameter"

exit

elsefor var in $*; doecho "var is $var"

donefi

linux if命令

无论什么编程语言都离不开条件判断。SHELL也不例外。

if list thendo something hereelif list thendo another thing hereelsedo something else herefi

EX1:

#!/bin/sh

SYSTEM=`uname -s`    #获取操作系统类型,我本地是linux

if [ $SYSTEM = "Linux" ] ; then     #如果是linux的话打印linux字符串echo "Linux"

elif [ $SYSTEM = "FreeBSD" ] ; then

echo "FreeBSD"

elif [ $SYSTEM = "Solaris" ] ; then

echo "Solaris"

else

echo "What?"

fi     #ifend

基本上和其他脚本语言一样。没有太大区别。不过值得注意的是。[]里面的条件判断。

1字符串判断

str1 = str2当两个串有相同内容、长度时为真str1 != str2当串str1和str2不等时为真-n str1当串的长度大于0时为真(串非空)

-z str1当串的长度为0时为真(空串)

str1当串str1为非空时为真

2数字的判断

int1 -eq int2两数相等为真int1 -ne int2两数不等为真int1 -gt int2int1大于int2为真int1 -ge int2int1大于等于int2为真int1 -lt int2int1小于int2为真int1 -le int2int1小于等于int2为真

3文件的判断

-r file用户可读为真-w file用户可写为真-x file用户可执行为真-f file文件为正规文件为真-d file文件为目录为真-c file文件为字符特殊文件为真-b file文件为块特殊文件为真-s file文件大小非0时为真-t file当文件描述符(默认为1)指定的设备为终端时为真

3复杂逻辑判断

-a 与-o或!非

结尾

语法虽然简单,但是在SHELL里使用的时候,他的功能变得强大了。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值