bash shell学习的记录(三)

1,怎么使用命令行位置参数

什么是命令行位置参数?举个简单的例子

$ ls
$ ls $HOME/Documents/123.txt
$ ./123 10 + 23
$ /etc/init.d/named reload

上面这四行命令行语句中位置参数列成表格来看更加清晰,

命令行指令($0)位置参数个数($#)位置参数($1…$9)
ls0Null
ls $HOME/Documents/123.txt1$HOME/Documents/123.txt
./123 10 + 23310,+,23
/etc/init.d/named reload1reload

举个栗子:

#! /bin/bash


#__Filename__ : begin10.sh
#__Auther__   : simileciwh
#Email        : simileci.wh.32@outlook.com
#Created date : 2018-11-30 14:53:14
# code is far away from bugs with the god animal protecting
#    I love animals. I have a lovely doggy!
#              ┏┓     ┏┓
#             ┏┛┻━━━━━┛┻┓
#             ┃    ☃    ┃
#             ┃  ┳┛  ┗┳ ┃
#             ┃     ┻   ┃
#             ┗━┓     ┏━┛
#               ┃     ┗━━━┓
#               ┃   神兽保佑  ┣┓
#               ┃   永无BUG!   ┏┛
#               ┗┓┓┏━━┳┓┏┛
#                ┃┫┫  ┃┫┫
#                ┗┻┛  ┗┻┛

IFS=", "
echo "Display all words using \$@"
echo "$@"
echo 
echo "Display all words using \$*"
echo "$*"

执行结果:

./begin10.sh we like each other
Display all words using $@
we like each other

Display all words using $*
we,like,each,other

**在这里,命令行的输入位置参数有"we, like, each, other"一共4个。$@会获得所有命令行输入测参数或者变量;$* 会以"$1y$2y$3y$4y"这种形式获得命令行位置输入的参数或者变量,而y的值是由$IFS确定的 **
因此,在本例中,使用两种方式获得命令行输入的位置参数或者变量。 IFS 在程序开始设置了默认值,因此$@和$*的输出样式不同。

命令行位置参数和变量可以通过$1, $2, $3,...,$9.获得
sdadkjal含义
$*获得所有命令行的位置参数和变量
$@获得所有命令行的位置参数和变量
$#获得位置参数的数量
$-获得shell支持的flags标志位
$?获得之前执行命令的返回值
$!获得最新的背景命令进程号
$$获得获得当前shell的进程号

举个栗子:
你可以新打开一个终端,然后通过 “$$” 查看当前shell的进程号,并使用 kill 命令将其杀掉。

$ echo $$
>>
>21307
$ kill -9 21307
#你会看到当前命令行自动关闭了。

这个栗子非常的有营养,这一招在bash中也非常的coooool!!!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值