返回顶部
首页 > 资讯 > 精选 >Shell编程中特殊变量的示例分析
  • 411
分享到

Shell编程中特殊变量的示例分析

2023-06-09 15:06:02 411人浏览 泡泡鱼
摘要

这篇文章给大家分享的是有关shell编程中特殊变量的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。$0 $# $n-->$[1..9] $* $@在shell中存在着一些特殊而又重要的变如:$1 $

这篇文章给大家分享的是有关shell编程中特殊变量的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

$0 $# $n-->$[1..9] $* $@

在shell中存在着一些特殊而又重要的变如:$1 $0 $#,我们称为特殊的位置变量要从命令行,函数,脚本,等传递参数时,就需要在shell脚本中使用位置参数变量

  1. $0:显示当前的脚本文件名,如果在执行脚本时添加了路径,那么全部都会输出

  2. $n:获取当前执行的shell脚本的第n个参数值比如:[n=1..9],如果N大于9那么就要使用{}来定义 比如${10}

  3. $#:获取当前shell脚本后面接的参数的个数

  4. $*:获取当前脚本的参数,不加引号和$@是一样的 加了引号;例如"$*" 则表示单个字符串。相当于"$1 $2 $3"

  5. $@:同样也是获取当前shell的参数,不加引号和$*是一样的,那么加了引号如:"$@" 表示将所有的参数视为不同独立的字符串,相当于"$1" "$2"..

总结:$*和$@不加双引号 是没有任何区别的,有双引号两者就有区别

1)$1 $2 特殊变量实战

[root@yankerp src]# cat test.sh #查看脚本的内容 #!/bin/bash echo $1   ---<定义了$1 [root@yankerp src]# source test.sh yankai #执行的脚本的时候将yankai赋值给脚本中的1 yankai         #输出yankai [root@yankerp src]#

例2:

[root@yankerp src]# cat test.sh #脚本内容 #!/bin/bash echo $1 [root@yankerp src]# source test.sh zhangsan lisi #zhansgan lisi是两个字符串以空格分割 zhangsan      #只输出了zhangsan,因为脚本中只定义了$1 [root@yankerp src]#

例3:

[root@yankerp src]# cat test.sh #查看脚本的内容 #!/bin/bash echo $1 [root@yankerp src]# source test.sh "zhangsan lisi" #加双引号表示一个字符串参数 zhangsan lisi    #最后输出结果为zhangsan lisi [root@yankerp src]#

例4:在脚本中添加$1 $2测试

[root@yankerp src]# cat test.sh #查看脚本的内容 #!/bin/bash echo $1 $2    定义了$1 $2 [root@yankerp src]# source test.sh zhangsan lisi #在执行脚本的时候定义了两个字符串 zhangsan lisi    #说明 zhangsan赋值给了$1 lisi赋值给了$2 输出结果为 zhangsan lisi [root@yankerp src]#

同时也可以这样加双引号 如下:

[root@yankerp src]# cat test.sh #查看脚本的内容 #!/bin/bash echo $1 $2 [root@yankerp src]# source test.sh "zhangsan lisi" yankai #""表示一个字符串  zhangsan lisi yankai  #输出结果 [root@yankerp src]#

2)当我们一个个的输入echo $1---15时会感觉很慢我们可以使用以下命令来接收命令传递的15个参数

[root@yankerp src]# echo \${1..15} $1 $2 $3 $4 $5 $6 $7 $8 $9 $10 $11 $12 $13 $14 $15

将输出的内容导入到test.sh文件中

[root@yankerp src]# echo \${1..15} > test.sh  [root@yankerp src]# cat test.sh  $1 $2 $3 $4 $5 $6 $7 $8 $9 $10 $11 $12 $13 $14 $15 [root@yankerp src]#

我们在脚本第一行加入echo

echo $1 $2 $3 $4 $5 $6 $7 $8 $9 $10 $11 $12 $13 $14 $15

3)打印26个字母如下:

[root@yankerp src]# echo {a..z}  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

传入26个字母a-z 作为26个参数

[root@yankerp src]# cat test.sh  echo $1 $2 $3 $4 $5 $6 $7 $8 $9 $10 $11 $12 $13 $14 $15 #脚本内容 [root@yankerp src]# source test.sh {a..z}  #传入26个字母 a b c d e f g h i a0 a1 a2 a3 a4 a5   #位置参数大于9后,输出的内容就不对了 [root@yankerp src]#

当位置参数大于9时 上面已经提到了我们可以使用{}来定义如下:

[root@yankerp src]# cat test.sh  echo $1 $2 $3 $4 $5 $6 $7 $8 $9 ${10} ${11} ${12} ${13} ${14} ${15}

再次·执行

[root@yankerp src]# source test.sh {a..z} a b c d e f g h i j k l m n o

4)$0特殊变量实战

[root@yankerp src]# cat y.sh  #!/bin/bash echo $0

当我们不带路径运行脚本,它会打印脚本的名称,如下:

[root@yankerp src]# sh y.sh  y.sh

当我们带绝对路径来执行脚本时,它会输出路径+脚本名

[root@yankerp src]# sh /usr/local/src/y.sh  /usr/local/src/y.sh

介绍dirname ---- basename

[root@yankerp src]# dirname /usr/local/src/y.sh  /usr/local/src [root@yankerp src]# basename /usr/local/src/y.sh  y.sh

·dirname功能:获取脚本的路径
·basename:获取脚本的名称

例如:

[root@yankerp src]# cat y.sh  #!/bin/bash dirname $0 basename $0 [root@yankerp src]# sh /usr/local/src/y.sh  /usr/local/src y.sh [root@yankerp src]#

5)$#特殊变量获取传参个数实践

[root@yankerp src]# cat test.sh  echo $1 $2 $3 $4 $5 $6 $7 $8 $9  < 9个位置参数变量 echo $#  <----加入$# [root@yankerp src]# source test.sh {a..z}  <传入26个字符 a b c d e f g h i  -----<只接收9个变量 26 ----<传入26个字符。因此这里显示26 [root@yankerp src]#

实例1:条件表达式判断语句如下:

#!/bin/bash [ $# -ne "2" ] && {    #如果用户输入的传参个数不等于2  echo "请输出正确的数值" #那么输出此信息  exit 1         #随后退出脚本 } echo "输入正确"      #如果输入的传参个数是2 那么就输出此信息

运行脚本如下:

[root@yankerp src]# sh p.sh  请输出正确的数值 [root@yankerp src]# sh p.sh zhangsan lisi 输入正确 [root@yankerp src]#

IF语句判断如下:

#!/bin/bash if [ $# -ne "2" ]   -------如果输入的传参个数不是2  then         ------那么    echo "/usr/local/src/ $0 请输入正确的值"  --输出一个/usr/local---路径加$0 $0表示输出运行脚本的名称  else    echo "输入正确" fi

执行如下:

[root@yankerp src]# sh p.sh  /usr/local/src/ p.sh 请输入正确的值 [root@yankerp src]# sh p.sh zhangsan lisi 输入正确 [root@yankerp src]#

Shell编程中特殊变量的示例分析

$* $@后续再出!!!

二、shell进程中特殊状态变量

$?    $$(不常用)   $!(不常用)    $_(不常用)$$ 和 $!都是获取脚本进程号PID,但是有所不同这里不在演示

1、$?特殊变量实践

[root@yankerp ~]# pwd /root [root@yankerp ~]# echo $? 0 [root@yankerp ~]

当我们执行每一条命令结束后,echo $? 如果它输出0那么就代表成功

[root@yankerp ~]# sfkljlfsdfsdf bash: sfkljlfsdfsdf: 未找到命令... [root@yankerp ~]# echo $? 127 [root@yankerp ~]#

非0则代表失败。

案例:安装Apache判断是否安装成功

[root@yankerp ~]#yum install Httpd -y

Shell编程中特殊变量的示例分析

案例2:通过脚本控制命令及脚本执行返回值

#!/bin/bash if [ "$#" -ne "3" ]  then   echo "/bin/bash $0" 请输出正确字符   exit 120  ---<如果以上不成立 并指定120值退出脚本  else   echo "输入正确" fi

运行如下:

[root@yankerp ~]# sh k.sh  /bin/bash k.sh 请输出正确字符 [root@yankerp ~]# echo $? 120 [root@yankerp ~]#  [root@yankerp ~]# sh k.sh zhangsan lisi wangwu 输入正确 [root@yankerp ~]# echo $? 0 [root@yankerp ~]#

Shell编程中特殊变量的示例分析

感谢各位的阅读!关于“Shell编程中特殊变量的示例分析”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

--结束END--

本文标题: Shell编程中特殊变量的示例分析

本文链接: https://lsjlt.com/news/256431.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Shell编程中特殊变量的示例分析
    这篇文章给大家分享的是有关Shell编程中特殊变量的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。$0 $# $n-->$[1..9] $* $@在shell中存在着一些特殊而又重要的变如:$1 $...
    99+
    2023-06-09
  • Shell编程中的特殊变量之位置变量介绍
    1、$0 获得当前脚本的文件名,包括路径。 #写一个测试脚本 vim test.sh #内容如下 dirname$0 basename$0 #执行一下 bash$(pwd)/test.sh ...
    99+
    2022-06-04
    变量 位置 Shell
  • Shell编程中的特殊变量之进程状态变量介绍
    进程状态变量 1、$$获取当前shell的进程号(PID) 2、$!执行上一个指令的PID 3、$?获取执行上一个命令的返回值(0为成功,非零为失败,这个很常用) 4、$_在此之前执行的命令或脚本的...
    99+
    2022-06-04
    变量 进程 状态
  • shell中变量的示例分析
    小编给大家分享一下shell中变量的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!1.简介变量是任何一种编程语言都必不可少的组成部分,变量用来存放各种数据...
    99+
    2023-06-09
  • Shell编程中变量数值计算的示例分析
    小编给大家分享一下Shell编程中变量数值计算的示例分析,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!如果要执行运算,那就少不了运算符,和其他的编程语言相似,shell也有很多的运算符如下:+、-、:代表着加号 和减号 或...
    99+
    2023-06-09
  • 如何理解Shell编程中的特殊变量之位置变量
    本篇内容介绍了“如何理解Shell编程中的特殊变量之位置变量”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!$0 获得当前脚本的文件名,包括路...
    99+
    2023-06-09
  • Shell编程之特殊变量和扩展变量详解
    特殊变量 在Shell中的特殊变量主要分别两种位置参数变量、状态变量两种。 位置参数变量 Shell中的位置参数变量主要是指0、0、1、$#等,主要用于从命令行、函数或脚本执行等地方传递参数。详细说明如下所示: ...
    99+
    2022-06-04
    shell特殊变量 shell变量 shell定义变量
  • Shell变量的示例分析
    这篇文章主要介绍了Shell变量的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。先不要管Shell的版本,来看看Shell 变量,在Shell中有三种变量:系统变量,...
    99+
    2023-06-09
  • 如何理解Shell编程中的特殊变量之进程状态变量
    本篇内容介绍了“如何理解Shell编程中的特殊变量之进程状态变量”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!进程状态变量$$获取当前she...
    99+
    2023-06-09
  • Shell特殊变量(Shell $#、$*、$@、$?、$$)的使用
    上节我们讲到了 $n,它是特殊变量的一种,用来接收位置参数。本节我们继续讲解剩下的几个特殊变量,它们分别是:$#、$*、$@、$?、$$。 Shell 特殊变量及其含义 变量 ...
    99+
    2022-06-04
    Shell特殊变量 Shell $# $* $@ $? $$
  • Shell中变量作用域的示例分析
    这篇文章主要为大家展示了“Shell中变量作用域的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Shell中变量作用域的示例分析”这篇文章吧。前言众所周知Shell 中的变量只作用于当前...
    99+
    2023-06-09
  • vuex中特殊应用的示例分析
    这篇文章主要介绍了vuex中特殊应用的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。有需求才会有应用!需求:vue项目中,我需要一个...
    99+
    2024-04-02
  • shell编程中如何分析bash变量
    本篇文章为大家展示了shell编程中如何分析bash变量,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。导读shell编程--bash变量介绍 ,变量是计算机内存的单元,其中存放的值可以改变。当&nb...
    99+
    2023-06-05
  • php中特殊运算符的示例分析
    这篇文章将为大家详细讲解有关php中特殊运算符的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。三元运算符 ? :格式:表达式1  表达式2 : 表达式3;如...
    99+
    2023-06-14
  • JavaScript特殊知识的示例分析
    这篇文章主要介绍JavaScript特殊知识的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!1.  Function.prototype 竟然是个函数类型。而自定义...
    99+
    2024-04-02
  • Python特殊方法的示例分析
    小编给大家分享一下Python特殊方法的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!运算符无关特殊方法运算符相关特殊方法以上是“Python特殊方法的示...
    99+
    2023-06-14
  • Shell命令行中特殊字符与其转义的示例分析
    这篇文章将为大家详细讲解有关Shell命令行中特殊字符与其转义的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。特殊符号及其转义大家都知道在一个shell命令是由命令名和它的参数组成的, 比如 ca...
    99+
    2023-06-09
  • shell循环中变量作用域的示例分析
    小编给大家分享一下shell循环中变量作用域的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!最近实现了一个shell脚本,功能简单来说就是从文件中按行读取...
    99+
    2023-06-09
  • Linux系统中Shell编程的示例分析
    这篇文章主要介绍Linux系统中Shell编程的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!一. 什么是Shell        1. 在学习Shell编程之前,我们...
    99+
    2023-06-26
  • 怎么在Shell中实现特殊变量和扩展变量
    本篇文章为大家展示了怎么在Shell中实现特殊变量和扩展变量,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。特殊变量在Shell中的特殊变量主要分别两种位置参数变量、状态变量两种。位置参数变量Shel...
    99+
    2023-06-09
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作