shell

本文详细介绍了Shell脚本中的特殊变量用法,包括$n、$#、$?、$*、$@等,并展示了条件判断的基本语法,如整数比较、文件权限和类型的检查。此外,还涵盖了流程控制结构,如if、for、case和while循环的使用,以及在脚本中如何实现各种逻辑控制。通过实例解析,帮助读者深入理解Shell脚本编程。
摘要由CSDN通过智能技术生成

1 特殊变量

$n

n为数字,0代表该脚本名称,1-9代表第一到第九个参数,
十以上的参数需要用大括号包含,如${10}

#!/bin/bash
echo "$0 $1 $2 ${11}"
$#

获取所有输入参数个数,常用于循环

$?

最后一次执行的命令的返回状态。如果这个变量的值为0,证明上一个命令正确执行;如果这个变量的值为非0(具体是哪个数,由命令自己来决定),则证明上一个命令执行不正确了

$*

获取命令行所有的参数,看做整体

$@

获取命令行所有的参数,分区

2 条件判断

基本语法
(1)两个整数之间比较
= 字符串比较
-lt 小于(less than)			-le 小于等于(less equal)
-eq 等于(equal)				-gt 大于(greater than)
-ge 大于等于(greater equal)	-ne 不等于(Not equal)

(2)按照文件权限进行判断
-r 有读的权限(read)			-w 有写的权限(write)
-x 有执行的权限(execute)

(3)按照文件类型进行判断
-f 文件存在并且是一个常规的文件(file)
-e 文件存在(existence)		-d 文件存在并是一个目录(directory)
巨蟹例子
[ 100 -ge 200 ]
echo $?

是否有写权限
[ -w helloworld.sh ]

文件是否存在
[ -e ~/test.py ]

3 流程控制

if
#!/bin/bash

if [ $1 -eq "1" ]
then
        echo "if 1 body"
elif [ $1 -eq "2" ]
then
        echo "if 2 body"
fi
for
#!/bin/bash
# 1到100累加
s=0
for((i=0;i<=100;i++))
do
        s=$[$s+$i]
done

# 依次打印输入的参数
for i in $*
do
  echo "ban zhang love $i "
done
echo $s
case
!/bin/bash

case $1 in
"1")
        echo "第一个参数为1。。。"
;;
"2")
        echo "第一个参数为2。。。"
;;
*)
        echo "other"
;;
esac
while
#!/bin/bash
s=0
i=1
while [ $i -le 100 ]
do
        s=$[$s+$i]
        i=$[$i+1]
done

echo $s
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值