首页 > 系统相关 >无涯教程-Linux - 特殊变量

无涯教程-Linux - 特殊变量

时间:2023-11-26 14:31:48浏览次数:46  
标签:脚本 教程 Learnfk 无涯 echo sh 参数 Linux com

在本章中,我们将讨论Unix中的特殊变量,在上一章中,我们了解了变量名称中使用某些非字母数字字符时应注意的事项,这些变量保留用于特定功能。

如, $字符代表当前Shell的进程ID号或PID-

$echo $$

上面的命令写入当前Shell的PID-

29949

下表显示了一些可以在Shell脚本中使用的特殊变量-

Sr.No. Variable & 描述
1

$0

当前脚本的文件名。

2

$n

这些变量对应于调用脚本的参数。这里的 n 是与参数位置相对应的正十进制数(第一个参数为$1,第二个参数为$2,依此类推)。

3

$#

提供给脚本的参数数量。

4

$*

所有参数都用双引号引起来。如果脚本收到两个参数,则$*等效于$1 $2。

5

$@

所有参数都单独用双引号引起来。如果脚本收到两个参数,则$@等效于$1 $2。

6

$?

最后执行的命令的退出状态。

7

$$

当前shell的进程号。对于Shell脚本,这是它们执行时的进程ID。

8

$!

最后一个后台命令的进程号。

命令行参数

命令行参数$1,$2,$3,... $9是位置参数,$0指向实际的命令,shell脚本或函数,$1,$2,$3,... $9作为参数命令。

以下脚本使用与命令行相关的各种特殊变量-

#!/bin/sh

echo "File Name: $0"
echo "First Parameter : $1"
echo "Second Parameter : $2"
echo "Quoted Values: $@"
echo "Quoted Values: $*"
echo "Total Number of Parameters : $#"

这是上述脚本的Example运行-

$./test.sh Learnfk com
File Name : ./test.sh
First Parameter : Learnfk
Second Parameter : com
Quoted Values: Learnfk com
Quoted Values: Learnfk com
Total Number of Parameters : 2

特殊参数$*和$@

我们可以如下所示编写Shell脚本,以使用$*或$@特殊参数处理未知数量的命令行参数-

#!/bin/sh

for TOKEN in $*
do
   echo $TOKEN
done

这是上述脚本的示例运行-

$./test.sh Learnfk com 2 Years Old
Learnfk
com
2
Years
Old

注意-这里的 do ... done 是一种循环,将在后续教程中进行介绍。

退出状态

$? 变量表示上一个命令的退出状态。

退出状态是每个命令完成后返回的数值。通常,如果大多数命令成功,则返回退出状态;如果不成功,则返回1。

以下是成功命令的示例-

$./test.sh learnfk com
File Name : ./test.sh
First Parameter : learnfk
Second Parameter : com
Quoted Values: learnfk com
Quoted Values: learnfk com
Total Number of Parameters : 2
$echo $?
0
$

参考链接

https://www.learnfk.com/linux/linux-special-variables.html

标签:脚本,教程,Learnfk,无涯,echo,sh,参数,Linux,com
From: https://blog.51cto.com/u_14033984/8570646

相关文章

  • 用VMware Workstation安装openEuler配置opengauss并连接Django 详细教程
    1.下载准备openEuler22.03LTSSP2下载链接:openEuler下载|欧拉系统ISO镜像|openEuler社区官网下载第一个就可以了,之后配置的时候直接勾选上opengauss,不用下载第二个的(太大了)VMwareWorkstation17Player下载链接:https://www.vmware.com/products/workstation-player/workstat......
  • 初识Linux(一)
        这是入门Linux的第一周,这一周学习的是有关Linux系统的简介以及centos系统和vmware虚拟机的安装。    在学习Linux的第一章中,我首先对Linux有了更深入的理解和认识。Linux是一种自由和开放源代码的操作系统,它是由芬兰计算机科学家LinusTorvalds于1991年首次开......
  • 无涯教程-Linux - 变量声明
    在本章中,我们将学习如何在Unix中使用Shell变量,变量不过是指向实际数据的指针,Shell使您可以创建,分配和删除变量。变量名变量名称只能包含字母(a到z或A到Z),数字(0到9)或下划线字符(_),按照约定,Unixshell变量将以大写字母命名。以下示例是有效的变量名-_ALITOKEN_AVAR_1VAR_......
  • 如何在windows系统下安装适用于linux的windows子系统
    最近部分工作需要在linux系统下操作,想着在自己本本上安装个虚拟机,废了九牛二虎之力安装好了VMware及Ubuntu系统,但是其在主机和虚拟机间共享数据不是很方便。于是又废了半天劲安装了VMwaretools,设置了共享盘、并启动后自动挂载。一切搞定后,无意中发现windows下可以安装linux子系统......
  • 无涯教程-Linux - vi编辑
    在本章中,我们将了解vim编辑器在Unix中的工作方式。启动vi编辑器下表列出了使用vi编辑器的基本命令-Sr.No.Command&描述1vifilename如果尚不存在,则创建一个新文件,否则打开一个现有文件。2vi-Rfilename以只读模式打开现有文件。3viewfilename以只读模式......
  • Linux命令(132)之sshpass
    linux命令之sshpass1.sshpass介绍linux命令sshpass是用来实现非交换的ssh操作2.sshpass用法sshpass[参数]commandsshpass参数参数说明-p指定明文密码3.实例3.1.sshpass安装默认系统中没有sshpass命令,需要安装sshpassrpm包命令:yuminstallsshpass[root@logstash~]#yuminstal......
  • 无涯教程-Linux - 通讯管理
    在本章中,我们将详细讨论Unix中的网络通信程序,在分布式环境中,您需要与远程用户进行通信,并且还需要访问远程Unix计算机。ping实用程序ping命令将回显请求发送到网络上可用的主机。使用此命令,您可以检查您的远程主机是否响应良好。以下是使用ping命令的简单语法-$pinghostna......
  • python 解密linux密码
    Python解密Linux密码简介在Linux系统中,用户的密码通常被加密存储在/etc/shadow文件中,以确保用户密码的安全性。这种加密方式称为密码哈希算法,它将用户密码转换为一串不可逆的密文。然而,有时候我们需要解密这些密码,例如在恢复用户密码或进行密码破解时。本文将介绍如何使用Python......
  • 无涯教程-Linux - 环境变量
    在本章中,我们将详细讨论Unix环境。Unix的一个重要概念是environment,它是由环境变量定义的。变量是我们为其分配值的字符串。分配的值可以是数字,文本,文件名,设备或任何其他类型的数据。如,首先我们设置一个变量TEST,然后使用echo命令访问它的值-$TEST="UnixProgramming"$ec......
  • FreeRTOS入门教程(任务通知)
    (文章目录)前言本篇文章将带大家学习任务通知的概念和使用方法。一、什么是任务通知FreeRTOS中的任务通知(TaskNotification)是一种轻量级的同步机制,允许一个任务通知另一个任务已发生的事件或条件。这对于多任务系统中的协作和同步非常有用。以下是有关FreeRTOS任务通知的详细......