首页 > 系统相关 >Linux脚本中($0、$?、$*、$@、$#、$$、$!)这些符号的含义及用法

Linux脚本中($0、$?、$*、$@、$#、$$、$!)这些符号的含义及用法

时间:2023-12-03 16:23:17浏览次数:39  
标签:脚本 调用 含义 PID 用法 字符串 Shell Linux 进程

$0:就是该bash文件名,个位数的,可直接使用数字,但两位数以上,则必须使用 {} 符号来括住,如${10}.

$?:是上一指令的返回值,成功是0,不成功是1。一般来说,UNIX(linux) 系统的进程以执行系统调用exit() 来结束的。这个回传值就是status值。回传给父进程,用来检查子进程的执行状态。一般指令程序倘若执行成功,其回传值为 0;失败为 1。

$*:所有脚本参数的内容:就是调用调用本bash shell的参数。

$@:基本上与上面相同。只不过是“$*”返回的是一个字符串,字符串中存在多外空格。 “$@”返回多个字符串。

$#:返回所有脚本参数的个数。

$$ :Shell本身的PID(ProcessID),即当前进程的PID。

$! :Shell最后运行的后台Process的PID

$- :使用Set命令设定的Flag一览
————————————————
版权声明:本文为CSDN博主「-凌凌漆-」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/yangshuoSB/article/details/134091496

标签:脚本,调用,含义,PID,用法,字符串,Shell,Linux,进程
From: https://www.cnblogs.com/wcxia1985/p/17873314.html

相关文章

  • linux中make编译源码包失败
    报错如下,gcc版本太低^server.c:5346:31:错误:‘structredisServer’没有名为‘server_cpulist’的成员redisSetCpuAffinity(server.server_cpulist);^server.c:在函数‘hasActiveChildProcess’中:server.c:1478:1:警告:在有返回值......
  • Linux-----错误处理
     Linux编程中,错误通过函数返回值表示(-1),并通过变量errno描述  包含的头文件 <errno.h>中定义了externinterrno;注意:Errno的值只有在函数错误后短时间有效,后续任何成功执行的函数都会修改该值(errno可能会被覆盖)errno可能错误值   C库提供了将errno的值转换......
  • 【Linux 基础】正则表达式 与 通配符 区别
    简短不看版:通配符和正则表达式比较(1)通配符和正则表达式看起来有点像,不能混淆。可以简单的理解为通配符只有*,?,[],{}这4种,而正则表达式复杂多了。(2)*在通配符和正则表达式中有其不一样的地方,在通配符中*可以匹配任意的0个或多个字符,而在正则表达式中他是重复之前的一个或者多个......
  • Linux和Windows时间不一致问题
    问题描述装过双系统或者虚拟机装Linux的人都知道,Linux的时间和Windows往往是不同步的,在编写跨平台程序的时候特别是对时间敏感的代码就带来很大的困扰解决办法这个问题可以在Linux下解决先用命令查看时区timedatectl如果系统刚刚装好,没有设置好时区,有可能默认的是America/L......
  • linux/centos使用fail2ban实现计次登录失败封禁其ip
    问题背景使用命令 cat/var/log/secure 查询服务器登录记录,发现有ip在进行暴力破解所以使用fail2ban进行ip限制,如果登录失败五次,则永久封禁其ip。安装并配置fail2ban(来自ChatGPT)下面是一份完整的Fail2Ban安装和配置,用于监视SSH服务并在登录失败5次时永久封锁相关IP的配置。......
  • linux文件系统管理和磁盘管理
    环境centos7.9文件系统挂载与卸载在Linux中,文件系统是通过挂载到目录上来使用的。挂载文件系统就是把一个文件系统和一个目录联系起来,使得用户可以通过这个目录来访问文件系统中的内容。文件系统挂载可以使用mount命令来实现挂载目录,如把/dev/sda1文件系统挂载到/mnt/mydisk目......
  • Linux 分区
    1、磁盘寻址方式(MBR)若按照上述分区则linux/dev文件下的硬盘设备应该为:/dev/sda1/dev/sda2/dev/sda3/dev/sda5/dev/sda6/dev/sda7其中sda4不见了是因为它作为了扩展分区,其实也就是包括了sda5~sda7统称扩展分区。 例题:  2、GPT分区表原理    ......
  • Linux服务器账号多次输入错误密码后解锁
    pam_tally2模块用于对系统进行失败的ssh登录尝试后锁定用户帐户。此模块保留已尝试访问的计数和过多的失败尝试。 查看用户登录失败的信息pam_tally2-urootLoginFailuresLatestfailureFromroot812/3/23 13:18:19192.168.7.49注:Failures表示登录系统失败的次数......
  • Linux第14章学习笔记
    第十四章学习笔记mysql简介MySQL是一个开源数据库管理系统,由服务器和客户机组成。在将客户机连接到服务器后,用户可向服务器输入SQL命令,以便创建数据库,删除数据库,存储、组织和检索数据库中的数据。MySQL有广泛的应用。安装MySQL在Ubuntu中,使用命令sudoaptinstallmysql-serv......
  • 【Docker】Linux路由连接两个不同网段namespace,连接namespace与主机
    如果两个namespace处于不同的子网中,那么就不能通过bridge进行连接了,而是需要通过路由器进行三层转发。然而Linux并未像提供虚拟网桥一样也提供一个虚拟路由器设备,原因是Linux自身就具备有路由器功能。路由器的工作原理是这样的:路由器上有2到多个网络接口,每个网络接口处于不同的三层......