Bash Shell中的特殊位置变量及其应用

众所周知bash shell中有许多特殊的位置变量,灵活使用它们可以更好地发挥Shell脚本的功用。

即位置变量:$1,$2,...来表示,用于让脚本在脚本代码中调用通过命令行传递给它的参数

特殊变量:$?, $0,$*,$@,$#, $$

---------------- 具体解析 -----------------------------

$? : 用于检测上一条命令的返回码,0代表成功,1-255表示失败

$0 :  表示命令本身

$*  : 表传递给脚本的所有参数,全部参数合为一个字符串

$@ : 表传递给脚本的所有参数,每个参数为独立字符串

$# :  传递给脚本的参数的个数

$$ :  获取当前执行的Shell脚本的进程号

为了更好理解,我编写如下脚本进行测试,注意$10要括号括起来才能识别。

[root@Franklin13 ~]# echo $SHELL
/bin/bash

[root@Franklin13 ~]# vim test_arg.sh

[root@Franklin13 ~]# bash test_arg.sh {a..z}

1st arg is a
2st arg is b
10st arg is j
All arg is a b c d e f g h i j k l m n o p q r s t u v w x y z
All arg is a b c d e f g h i j k l m n o p q r s t u v w x y z
The arg number is 26
The scriptname is test_arg.sh
[root@Franklin13 ~]#

实战1: 活用$1来编写一个自动取ip的脚本


首先用如下命令来截取ip, 成功了

[root@Franklin13 ~]# ifconfig ens33|grep -w "inet"|tr -s ' ' %|cut -d% -f3 (tr -s ' ' %表示先压缩所有重复的空格到只留一个再转换为%)
192.168.1.19

再通过调用$1来使这条命令可以用于一个脚本来快速查ip。

[root@Franklin13 ~]# ./get-ip.sh lo

The ip is 127.0.0.1
Thank you for using!
[root@Franklin13 ~]# ./get-ip.sh ens33
The ip is 192.168.1.19
Thank you for using!
[root@Franklin13 ~]# ./get-ip.sh virbr0
The ip is 192.168.122.1
Thank you for using!

 --------------------------------全文完-----------------------------------

Bash Shell中的特殊位置变量及其应用的更多相关文章

  1. bash shell中测试命令

    bash shell中测试命令 test命令提供了if-than语句中测试不同条件的途径.如果test命令中列出的条件成立,test命令就会退出并返回退出状态吗0 .这样if-than语句就与其他编程 ...

  2. Bash shell中的位置参数$#,$*,$@,$0,$1,$2...及特殊参数$?,$-等的含义

    http://hi.baidu.com/lolorosa/blog/item/5775a608bd670d33b0351da7.html $# 是传给脚本的参数个数 $@ 是传给脚本的所有参数的列表 ...

  3. Bash Shell中Shift用法分享

    这篇文章主要介绍了Bash Shell中Shift的使用方法,需要的朋友可以参考下 shift可以用来向左移动位置参数.Shell的名字 $0第一个参数 $1第二个参数 $2第n个参数 $n所有参数 ...

  4. linux bash shell中case语句的实例

    本文介绍下,在bash shell编程中,有关case语句的一个例子,学习下case语句的用法,有需要的朋友参考下. 本文转自:http://www.jbxue.com/article/13377.h ...

  5. 【转】Bash Shell中命令行选项/参数处理

    原文网址:http://www.cnblogs.com/FrankTan/archive/2010/03/01/1634516.html 0.引言 写程序的时候经常要处理命令行参数,本文描述在Bash ...

  6. Bash Shell中命令行选项/参数处理

    0.引言 写程序的时候经常要处理命令行参数,本文描述在Bash下的命令行处理方式. 选项与参数: 如下一个命令行: ./test.sh -f config.conf -v --prefix=/home ...

  7. 26 bash shell中的信号

    当没有任何捕获时,一个交互式 Bash Shell 会忽略 SIGTERM(发送到进程的 TERM 信号用于要求进程终止) 和 SIGQUIT(当用户要求进程执行 core dump 时,QUIT 信 ...

  8. My way on Linux - [Shell基础] - Bash Shell中判断文件、目录是否存在或者判断其是否具有某类属性(权限)的常用方法

    Conditional Logic on Files # 判断文件是否存在及文件类型 -a file exists. #文件存在 -b file exists and is a block speci ...

  9. bash Shell 中如何实现条件判断之if判断

    http://blog.51cto.com/lovelace/1211353 bash中如何实现条件判断?条件测试类型:    整数测试    字符测试    文件测试 一.条件测试的表达式:     ...

随机推荐

  1. js常用方法总结(以后遇到再进一步总结)

    1.index()    返回指定元素相对于其他指定元素的 index 位置. <h1>店铺评价</h1> <div class="star starcd&qu ...

  2. onchange onpropertychange 和 oninput 事件的区别

    onchange 事件在内容改变(两次内容有可能还是相等的)且失去焦点时触发. onpropertychange 事件却是实时触发,即每增加或删除一个字符就会触发,通过 js 改变也会触发该事件,但是 ...

  3. 第一章 了解Web及网络基础

    第一章 了解Web及网络基础 Web建立基础.HTTP如何诞生发展 1.使用HTTP协议访问Web 在浏览器地址栏中输入URL之后过程: 1)DNS 解析:浏览器查询 DNS,获取域名对应的 IP 地 ...

  4. Mysql对表中 数据 查询的操作 DQL

    准备数据,倒入sql文件 运行sql文件 得到四张表 select * from 表名  * 代表全部 1.AS子句作为别名 select studentname as "姓名" ...

  5. 配置好运行后Error creating context 'spring.root': Could not load type from string value

    在Webconfig文件的当前项目下引用相关项目

  6. 递归函数详解——VS调试教你理解透彻递归

    #include <stdio.h> #include <stdlib.h> int recursion(int); ; int main(void) { recursion( ...

  7. 15 张 Vim 速查表奉上,帮你提高N倍效率!

    阅读本文大概需要 2.8 分钟. 去年上半年开始全面使用linux进行开发和娱乐了,现在已经回不去windows了. 话归正传,在linux上一直使用vim,慢慢熟悉了它的命令,才终于领悟了什么是编辑 ...

  8. 推荐支付宝 Android 专项测试工具SoloPi

    推荐支付宝 Android 专项测试工具SoloPi 1 介绍 SoloPi是一个无线化.非侵入式的Android自动化工具,公测版拥有录制回放.性能测试.一机多控三项主要功能,能为测试开发人员节省宝 ...

  9. JAVA8之StringJoiner

    作用:运用了StringBuilder的一个拼接字符串的封装处理 示例: StringJoiner sj = new StringJoiner("-", "[" ...

  10. CentOS7 配置ip地址

    1.查看网络配置文件 可能因为不同的系统,配置文件都不一样,总体来说,配置文件都是 前缀:ifcfg-eno + 后缀:随机数组成 进入到 /etc/sysconfig/network-scripts ...