介绍 shell 脚本中几个特殊参数的用法

在本文中讨论的一些shell特殊参数是: ∗ , *, @,KaTeX parse error: Expected 'EOF', got '#' at position 1: #̲, , , !

示例1:使用 ∗ 和 *和 @ 来扩展位置参数

本实例脚本中使用 ∗ 和 *和 @参数:

[root@localhost scripts]# vim expan.sh

#!/bin/bash

export IFS='-'

cnt=1

# Printing the data available in $*
echo "Values of \"\$*\":"
for arg in "$*"
do
  echo "Arg #$cnt= $arg"
  let "cnt+=1"
done

cnt=1

# Printing the data available in $@
echo "Values of \"\$@\":"
for arg in "$@"
do
  echo "Arg #$cnt= $arg"
  let "cnt+=1"
done

下面是运行结果:

[root@localhost scripts]# ./expan.sh "Hello world" 2 3 4
Values of "$*":
Arg #1= Hello world-2-3-4
Values of "$@":
Arg #1= Hello world
Arg #2= 2
Arg #3= 3
Arg #4= 4

在这里插入图片描述

  • export IFS='-'表示使用" - "表示内部字段分隔符。
  • 当打印参数$*的每个值时,它只给出一个值,即是IFS分隔的整个位置参数。
  • 而$@将每个参数作为单独的值提供。

示例2:使用$#统计位置参数的数量

$#是特殊参数,它可以提更脚本的位置参数的数量:

[root@localhost scripts]# vim count.sh

#!/bin/bash

if [ $# -lt 2 ]
then
  echo "Usage: $0 arg1 arg2"
  exit
fi

echo -e  "\$1=$1"
echo -e "\$2=$2"

let add=$1+$2
let sub=$1-$2
let mul=$1*$2
let div=$1/$2

echo -e "Addition=$add\nSubtraction=$sub\nMultiplication=$mul\nDivision=$div\n"

下面是运行结果:

[root@localhost scripts]# ./count.sh 
Usage: ./count.sh arg1 arg2
[root@localhost scripts]# ./count.sh 2314 15241
$1=2314
$2=15241
Addition=17555
Subtraction=-12927
Multiplication=35267674
Division=0

在这里插入图片描述
脚本中if [ $# -lt 2 ]表示如果位置参数的数量小于2,则会提示"Usage: ./count.sh arg1 arg2"。

示例3:与过程相关的参数 $ 和 和 !

参数$ 将给出 s h e l l 脚本的进程 I D 。 将给出shell脚本的进程ID。 将给出shell脚本的进程ID!提供最近执行的后台进程的ID,下面实例是打印当前脚本的进程ID和最后一次执行后台进程的ID:

[root@localhost scripts]# vim proc.sh

#!/bin/bash

echo -e "Process ID=$$"

sleep 1000 &

echo -e "Background Process ID=$!"

下面是执行的结果:

[root@localhost scripts]# ./proc.sh 
Process ID=14625
Background Process ID=14626
[root@localhost scripts]# ps
   PID TTY          TIME CMD
  3665 pts/0    00:00:00 bash
 14626 pts/0    00:00:00 sleep
 14627 pts/0    00:00:00 ps

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值