Shell

    echo  表示   输出

仅用于字符串的输出,没有使用printf作为输出的移植性好,建议使用printf

参数传递

获取参数值:

 $0 :

固定,代表执行的文件名

 $1 :

代表传入的第1个参数

 $n :

代表传入的第n个参数

$#:

参数个数

$*:

以一个单字符串显示所有向脚本传递的参数。如"$*“用「”」括起来的情况、以"$1 $2 … $n"的形式输出所有参数

$@:

与$*相同,但是使用时加引号,并在引号中返回每个参数。

$$:

脚本运行的当前进程号

$!:

后台运行的最后一个进程的ID

$?:

显示最后命令的退出状态。0表示没有错误,其他任何值表明有错误。

$* 与 $@ 区别:

  •  相同点:都是引用所有参数。
  •  不同点:只有在双引号中体现出来。假设在脚本运行时写了三个参数 1、2、3,,则 " * " 等价于 “1 2 3”(传递了一个参数),而 “@” 等价于 “1” “2” “3”(传递了三个

参数)。

文件运算符

格式:[ -f   /etc/fstab ]            [   参数   文件路径  ]              0 表示 “真”,表示“假”

参数

描述

-b file

检测文件是否是块设备文件,如果是,则返回 true。 [ -b $file ] 返回 false。

-c file

检测文件是否是字符设备文件,如果是,则返回 true。 [ -c $file ] 返回 false。

-d file

检测文件是否是目录,如果是,则返回 true。 [ -d $file ] 返回 false。

-f file

检测文件是否是普通文件(既不是目录,也不是设备文件),如果是,则返回 true。 [ -f $file ] 返回 true。

-g file

检测文件是否设置了 SGID 位,如果是,则返回 true。 [ -g $file ] 返回 false。

-k file

检测文件是否设置了粘着位(Sticky Bit),如果是,则返回 true。 [ -k $file ] 返回 false。

-p file

检测文件是否是有名管道,如果是,则返回 true。 [ -p $file ] 返回 false。

-u file

检测文件是否设置了 SUID 位,如果是,则返回 true。 [ -u $file ] 返回 false。

-r file

检测文件是否可读,如果是,则返回 true。 [ -r $file ] 返回 true。

-w file

检测文件是否可写,如果是,则返回 true。 [ -w $file ] 返回 true。

-x file

检测文件是否可执行,如果是,则返回 true。 [ -x $file ] 返回 true。

-s file

检测文件是否为空(文件大小是否大于0),不为空返回 true。 [ -s $file ] 返回 true。

-e file

检测文件(包括目录)是否存在,如果是,则返回 true。 [ -e $file ] 返回 true。

逻辑运算符

假定变量 a 为 10,变量 b 为 20:

“&&“ ---->表示只有当  前面的命令执行成功 后面的命令才会执行

"||"------->表示只有当  前面的命令执行失败  后面的命令才会执行

”!“     判断当前词组是否为 假,若为真,则判定假;若为假,则判定真;————就像是反义词 

格式:[   $USER = root ]    $$或者||    echo   "user"

&&

逻辑的 AND [[ $a -lt 100 && $b -gt 100 ]] 返回 false

||

逻辑的 OR [[ $a -lt 100 || $b -gt 100 ]] 返回 true

数字关系运算符

关系运算符只支持数字,不支持字符串,除非字符串的值是数字。

下面假定变量 a 为 10,变量 b 为 20

    -eq

检测两个数是否相等,相等返回 true。 [ $a -eq $b ] 返回 false。

    -ne

检测两个数是否不相等,不相等返回 true。 [ $a -ne $b ] 返回 true。

    -gt

检测左边的数是否大于右边的,如果是,则返回 true。 [ $a -gt $b ] 返回 false。

    -lt

检测左边的数是否小于右边的,如果是,则返回 true。 [ $a -lt $b ] 返回 true。

    -ge

检测左边的数是否大于等于右边的,如果是,则返回 true。 [ $a -ge $b ] 返回 false。

    -le

检测左边的数是否小于等于右边的,如果是,则返回 true。 [ $a -le $b ] 返回 true。

  free

用来获取当前系统正在使用及可用的内存量信息

 free     -m

  grep  Mem

过滤出剩余的内存信息

  free   -m  |  grep  Men:  |  awk  ‘{print  $4}’

字符串运算符

下表列出了常用的字符串运算符,假定变量 a 为 “abc”,变量 b 为 “efg”:

操作符

作用

    =

检测两个字符串是否相等,相等返回 true。 [ $a = $b ] 返回 false。

    !=

检测两个字符串是否相等,不相等返回 true。 [ $a != $b ] 返回 true。

    -z

检测字符串长度是否为0,为0返回 true。 [ -z $a ] 返回 false。

    -n

检测字符串长度是否为0,不为0返回 true。 [ -n “$a” ] 返回 true。

    $

检测字符串是否为空,不为空返回 true。 [ $a ] 返回 true。

shell脚本创建完成后需要进行立即执行该脚本:bash  脚本名

查询:ls  -ld   文件路径名

if条件语句:

例如:判断该脚本输出值是否为成年或儿童

  1. #!/bin/bash
  2. read -p "Enter your score0-100:" AGE                    ##青色底纹  表示  范围
  3. if [ $AGE -ge 18 ]; then                                                ##黄色底纹  表示  变量
  4.         echo "成年"                                                      ##绿色底纹  表示  参数
  5. elif [ $AGE -gt 12 ] && [ $AGE -lt 18 ] ; then
  6.         echo "少年"
  7. else [ $AGE -lt 12 ]
  8.         echo "儿童"
  9. fi

查询用户信息,

判断该用户是否存在

  id  用户名

例如:id  root

用case语句,输入1-4之间的数并输出所输入的数字:

 cat wqd.sh

echo '输入 1 到 4 之间的数字:'

echo '你输入的数字为:'

read aNum

case $aNum in

    1)  echo '你选择了 1'

    ;;

    2)  echo '你选择了 2'

    ;;

    3)  echo '你选择了 3'

    ;;

    4)  echo '你选择了 4'

    ;;

    *)  echo '你没有输入 1 到 4 之间的数字'

    ;;

esac

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

你可知这世上再难遇我

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值