首页 > 系统相关 >shell编程-位置参数的理解

shell编程-位置参数的理解

时间:2023-04-18 15:33:43浏览次数:48  
标签:Shell 所有 PID shell 专栏 参数 编程

Linux——$1、$#、$@、$0、$1、$2

于 2018-07-19 21:59:45 发布29675 收藏 66 分类专栏: 测试开发   测试开发专栏收录该内容 70 篇文章5 订阅 订阅专栏
$1在shell中称为“位置参数”,表示传入的第1个参数(第1个入参)。
test -z $1 是一个判断表达式,用于判断$1的值是否为空字符串。
若为空,则结果为true;否则为false。

常用的shell中带有$符号的几个变量的含义:

区别:@ *

  • 相同点:都是引用所有参数
  • 不同点:只有在双引号中体现出来。假设在脚本运行时写了三个参数(分别存储在1 2 3)则"*" 等价于 “1 2 3"(传递了一个参数);而“@" 等价于 "1" "2"  "$3"(传递了三个参数)

变量说明: 
$$ ——Shell本身的PID(ProcessID) 
$! ——Shell最后运行的后台Process的PID 
$? ——最后运行的命令的结束代码(返回值) 
$- ——使用Set命令设定的Flag一览 
$* ——所有参数列表。如"$*"用「"」括起来的情况、以"$1 $2 … $n"的形式输出所有参数。 
$@ ——所有参数列表。如"$@"用「"」括起来的情况、以"$1" "$2" … "$n" 的形式输出所有参数。 
$# ——添加到Shell的参数个数 
$0 ——Shell本身的文件名 
$1~$n ——添加到Shell的各参数值。$1是第1参数、$2是第2参数…。 

标签:Shell,所有,PID,shell,专栏,参数,编程
From: https://www.cnblogs.com/cherishthepresent/p/17329752.html

相关文章

  • 如何将 shell 脚本编译成二进制执行文件
    一、说明很多人写了一些shell脚本,想给其他人用但是又不想公开源代码,所以就要对shell脚本进行加密处理,那么我们可以Shell脚本编译器工具(SHC),使用shc将bash/shell脚本编译为二进制文件,隐藏源代码并防止被被人修改的功能。由于在大多数操作系统上默认是不安装的,因此需要手......
  • MySQL多源复制报错,在线更改relay_log_info_repository,master_info_repository参数
    MySQL在5.7之后才支持多源复制,之前介绍过官方文档。原理:多源复制加入了一个叫做Channel的概念,每一个Channel都是一个独立的Slave,都有一个IO_THREAD和SQL_THREAD。原理和普通复制一样。我们只需要对每一个Master执行ChangeMaster语句,只需要在每个语句最后使用ForChannel来进行......
  • shell脚本中的&&解析
    #!/bin/bashtouchfile1#创建文件file1rm-ffile2#删除文件file2if[-ffile1]&&echo"hello"&&[-ffile2]&&echo"world"#如果文件file1存在,则输出"hello"#如果前面的命令(即echo"hello")执行成功,则继续判断是否存在文件f......
  • 使用了enabled_PDBs_on_standby参数后,主库新增pdb后从库的操作
    环境:OS:Centos7DB:12.2.0.1拓扑:1主1从的dataguard 1.从库查看参数enabled_PDBs_on_standbySQL>showparametersenabled_PDBs_on_standbyNAMETYPEVALUE--------------------------------------------------------------......
  • #yyds干货盘点#python关键字参数
    关键字参数kwarg=value 形式的 关键字参数 也可以用于调用函数。函数示例如下:defparrot(voltage,state='astiff',action='voom',type='NorwegianBlue'):print("--Thisparrotwouldn't",action,end='')print("ifyouput......
  • 《3D编程模式》写书-第4次记录
    大家好,这段时间我完成了“再看设计原则”的初稿,包括了设计基础、单一职责原则、依赖倒置原则、接口隔离原则、合成复用原则、最少知识原则、开闭原则目前我已经完成了所有的初稿,后面会进行第二轮的修改,将初稿改为二稿目前暂定删除“提出新的设计原则”的内容感谢大家的支持!......
  • 部署多节点elasticsearch集群的shell脚本
    以下是一个部署多个节点的elasticsearch集群的shell脚本示例:#!/bin/bash#设置集群名称CLUSTER_NAME="my_cluster"#设置elasticsearch版本号ES_VERSION="7.10.2"#设置elasticsearch安装目录ES_HOME="/usr/local/elasticsearch"#设置elasticsearch数据目录DATA_DI......
  • shell 编写脚本的一些细节心得:流程控制
    流程控制用得最多的,无非也就是老三样,if、for、while。if其中if作为判断的函数使用,其中也是有很多小细节的。例如你要判断两个值是否相等的时候,有两种方式,代码如下:test=2if((${test}==2))thenecho"yes"fiif[${test}-eq2]thenecho"yes"fi其实两段代码的......
  • socket网络编程
    下面分别以TCP、UDP为例介绍两者的流程图和代码实现:TCP1.流程图:和网上大部分的版本不同,我将TCP三次握手的过程画在了accpet之前,这也是在查阅一些资料发现三次握手会由内核自动完成,aceept只是从队列中取出已经建好的tcp连接,这一点可以在代码中不加入accpet以及后续步骤......
  • pg 10 主要参数配置整理
    一、查看参数设置show参数名select*frompg_settingswherename='参数名';查看 postgresql.conf文件  二、参数是否可修改pg中主要可优化参数都位于postgresql.conf文件中,其中参数是否可修改可通过pg_settings的context字段查询。postgres=#selectdistinctcontextfrom......