iis服务器助手广告广告
返回顶部
首页 > 资讯 > 操作系统 >shell脚本中$符号的命令使用汇总
  • 576
分享到

shell脚本中$符号的命令使用汇总

shell$shell$命令 2022-06-04 23:06:27 576人浏览 薄情痞子
摘要

    今天是远程办公的第4天,渐渐的找到了一点在家办公的节奏了,改了几个shell脚本,在改动过程中,发现还有一些知识点需要巩固,这里写出来,加深下印象。    关于$

    今天是远程办公的第4天,渐渐的找到了一点在家办公的节奏了,改了几个shell脚本,在改动过程中,发现还有一些知识点需要巩固,这里写出来,加深下印象。

   关于$符号,大家肯定都不陌生,在shell脚本中,$的作用还是比较大多的,这里将所有的$组合都列出来,大家可以看下效果。

   $组成的命令大概有下面几个:

$0,$1...$?,$!,$$,$*,$#,$@

下面分别看看这些意思是什么:

1.$0,$1

$0和$1比较好理解,他们的意思,分别是脚本名称和脚本的第一个参数,我们举个例子来看:


jwfyyzdembp:tmp jwfyyz$ cat test.sh
echo '$0的含义是':$0
echo '$1的含义是':$1
jwfyyzdembp:tmp jwfyyz$ ./test.sh yeyz
$0的含义是:./test.sh
$1的含义是:yeyz
jwfyyzdembp:tmp jwfyyz$ sh test.sh yeyz
$0的含义是:test.sh
$1的含义是:yeyz

   需要注意一点,当使用./test.sh的方法来运行脚本的时候,$0的值是./test.sh,而不是test.sh

2.$?

$?指的是最后运行的命令的执行返回码,执行成功,则返回0,否则返回1,举例如下:


jwfyyzdembp:tmp jwfyyz$ cat test.sh 
echo '$0的含义是':$0
echo '$1的含义是':$1
ls -l a.txt
echo '$?的结果是'$?
ls -l test.sh
echo '$?的结果是'$?

jwfyyzdembp:tmp jwfyyz$ sh test.sh yeyz
$0的含义是:test.sh
$1的含义是:yeyz
ls: a.txt: No such file or directory
$?的结果是1
-rwxr-xr-x 1 jwfyyz wheel 124 2 7 20:32 test.sh
$?的结果是0

 ZAHGvFGDLn 可以看到,第一次运行ls -l a.txt的时候,由于我们的目录中没有a.txt这个文件,所以返回是1,第二次由于test.sh文件是存在的,所以返回的结果是0

3.$$

  $$指的是脚本运行的当前进行id号,举例如下:


jwfyyzdembp:tmp jwfyyz$ cat test.sh 
pwd
echo $$
sleep 10

jwfyyzdembp:tmp jwfyyz$ sh test.sh &
[1] 60658

jwfyyzdembp:tmp jwfyyz$ ps -ef|grep test
 501 60658 60529 0 8:36下午 ttys000 0:00.01 sh test.sh
 501 60661 60529 0 8:36下午 ttys000 0:00.00 grep test

   我们在test.sh脚本后面设置了sleep 10的命令,脚本运行完会睡眠10s,脚本中打印出来了值60658,此时我们查看当前脚本的进程号,发现子进程的进程id是60658

4.$*和$@

  这两个放在一起,主要是因为他们都代表引用的所有参数,单独打印出来结果,都是一样的,但是循环打印他们的内容,则会看出区别,举例如下:


jwfyyzdembp:tmp jwfyyz$ cat test.sh 
echo '$*的结果是':$*
echo '$@的结果是':$@
echo "-- \$* 演示 ---"
for i in "$*"; do
 echo $i
done

echo "-- \$@ 演示 ---"
for i in "$@"; do
 echo $i
done

jwfyyzdembp:tmp jwfyyz$ sh test.sh yeyz 1 2 3
$*的结果是:yeyz 1 2 3
$@的结果是:yeyz 1 2 3
-- $* 演示 ---
yeyz 1 2 3
-- $@ 演示 ---
yeyz
1
2
3

   可以看到,循环打印的时候,$@ 

5.$#

  $#容易理解,它的意思是参数的个数。举例:


jwfyyzdembp:tmp jwfyyz$ cat test.sh 
echo '$*的结果是':$*
echo '$@的结果是':$@
echo '$#的结果是':$#

jwfyyzdembp:tmp jwfyyz$ sh test.sh yeyz 1 2 3
$*的结果是:yeyz 1 2 3
$@的结果是:yeyz 1 2 3
$#的结果是:4

6.$!

  该命令是显示shell脚本中上一个后台执行命令的进程id号,如下:


jwfyyzdembp:tmp jwfyyz$ cat test.sh 
echo '$*的结果是':$*
echo '$@的结果是':$@
echo '$#的结果是':$#
sleep 10 &
echo '$!的结果是':$!
sleep 10

jwfyyzdembp:tmp jwfyyz$ sh test.sh yeyz 1 2 3 &
[1] 61237
$*的结果是:yeyz 1 2 3
$@的结果是:yeyz 1 2 3
$#的结果是:4
$!的结果是:61238

jwfyyzdembp:tmp jwfyyz$ ps -ef|grep sleep
 501 61238 61237 0 9:12下午 ttys000 0:00.00 sleep 10
 501 61239 61237 0 9:12下午 ttys000 0:00.00 sleep 10
 501 61241 60529 0 9:12下午 ttys000 0:00.00 grep sleep

  在test.sh中,我们使用了sleep 10这样的命令在后台执行,然后我们可以看到,$!返回的值是61238,当我们ps -ef命令去查询进程信息的时候,可以看到,61238这个进程对应的命令就是sleep 10,注意和$$区分开来,$$反应的是当前脚本执行的进程号,$!反应的是脚本中某个命令的进程号。

以上就是shell脚本中$符号的使用示例的详细内容,更多关于shell $的资料请关注我们其它相关文章!

--结束END--

本文标题: shell脚本中$符号的命令使用汇总

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

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

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • shell脚本中$符号的命令用法介绍
    这篇文章主要讲解了“shell脚本中$符号的命令用法介绍”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“shell脚本中$符号的命令用法介绍”吧!   关于$符号,大家肯定...
    99+
    2023-06-09
  • Shell脚本中的printf命令使用
    上一章节我们学习了 Shell 的 echo 命令,本章节我们来学习 Shell 的另一个输出命令 printf。 printf 命令模仿 C 程序库(library)里的 printf() 程序。 printf 由 P...
    99+
    2023-05-12
    Shell printf命令 Shell printf
  • “$” 符号如何在Shell 脚本中使用
    “$” 符号如何在Shell 脚本中使用?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。通常情况下,在工作中用的最多的有如下几项:$0:Shell 的命令本身1到9:表示 She...
    99+
    2023-06-09
  • Shell脚本中的echo命令使用介绍
    目录引言1.显示普通字符串:2.显示转义字符3.显示变量4.显示换行5.显示不换行6.显示结果定向至文件7.原样输出字符串,不进行转义或取变量(用单引号)8.显示命令执行结果引言 Shell 的 echo 指令与 ph...
    99+
    2023-05-12
    Shell脚本echo命令 Shell脚本命令
  • 如何使用Shell脚本test命令
    这篇文章主要讲解了“如何使用Shell脚本test命令”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何使用Shell脚本test命令”吧!Shell中的 test 命令用于检查某个条件是否...
    99+
    2023-06-09
  • read命令怎么在SHELL脚本中使用
    本篇文章给大家分享的是有关read命令怎么在SHELL脚本中使用,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。1.1 shell read简介要与Linux交互,脚本获取键盘输...
    99+
    2023-06-09
  • 如何使用linux shell脚本xargs命令
    本篇内容主要讲解“如何使用linux shell脚本xargs命令”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何使用linux shell脚本xargs命令”吧!xargs是给命令传递参数的...
    99+
    2023-06-09
  • Shell脚本中$符号的嵌套使用方法小结
    目录1 示例2 说明本文主要介绍在编写 Shell 脚本时,通过嵌套使用 $ 符号,间接获取变量或表达式的值的具体方法。 先说结论,在 Shell 脚本中,可以通过使用 eval 命令来实现 $ 符号的嵌套使用...
    99+
    2023-05-06
    Shell $符号嵌套 Shell $符号
  • nodejs脚本中执行shell命令
    nodejs脚本中执行shell命令 官方文档一:exec 方法执行shell命令1. _注意:2. _优点特性:3. _语法格式:4. _option对象属性:5. _示例: 二:spa...
    99+
    2023-08-31
    linux unix 服务器
  • 如何使用Shell脚本break和continue命令
    本篇内容介绍了“如何使用Shell脚本break和continue命令”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!在循环过程中,有时候需要...
    99+
    2023-06-09
  • Linux环境shell脚本获取时间的常用命令总结
    本篇内容介绍了“Linux环境shell脚本获取时间的常用命令总结”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1. 相关概念Linux的系...
    99+
    2023-06-16
  • linux中的MYSQL命令汇总
    本篇内容主要讲解“linux中的MYSQL命令汇总”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“linux中的MYSQL命令汇总”吧!一、总结一下: 1.linux下启动mysql的命令: my...
    99+
    2023-06-13
  • 有哪些常用的shell脚本命令
    有哪些常用的shell脚本命令?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。shell脚本基本命令:1、echo 命令1 基本使用Shell 的 echo 指令...
    99+
    2023-06-14
  • shell脚本中有哪些特殊符号
    这篇文章主要讲解了“shell脚本中有哪些特殊符号”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“shell脚本中有哪些特殊符号”吧!在shell中常用的特殊符号罗列如下:# ; ;; . ,...
    99+
    2023-06-09
  • SecureCRT如何使用rz命令上传shell脚本
    小编给大家分享一下SecureCRT如何使用rz命令上传shell脚本,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧! 今天yum install -y lrzsz 用rz上传本机文件,上传shell 脚本后执行脚本报错提示...
    99+
    2023-06-06
  • JVM的常用命令汇总
    目录简介jpsjinfojstatjstackjmap简介 监测java应用,最方便的就是直接使用jdk提供的现成工具,在jdk的安装的bin目录下,已经提供了多种命令行监测工具,以...
    99+
    2022-11-13
    JVM常用命令 JVM 命令
  • 怎么用命令执行Shell脚本
    本篇内容主要讲解“怎么用命令执行Shell脚本”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么用命令执行Shell脚本”吧!假设这个 shell 脚本的名称为 tinyshell.sh。在 L...
    99+
    2023-06-09
  • Bash脚本中Sleep命令的使用
    目录等待时间的格式使用变量控制等待时间结论在编写Bash脚本时,有时需要在程序执行过程中加入一些等待时间,例如等待某个操作完成或等待某个进程退出。此时可以使用sleep命令来实现。 sleep命令可以让脚本暂停执行一段时...
    99+
    2023-05-05
    Bash Sleep命令 Bash Sleep
  • 常用的mysql命令汇总
    这篇文章主要讲解了“常用的mysql命令汇总”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“常用的mysql命令汇总”吧!一、连接MySQL &nb...
    99+
    2024-04-02
  • 如何在shell中使用expect命令进行远程执行命令脚本
    如何在shell中使用expect命令进行远程执行命令脚本?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。expect是用来实现自动交互功能的工具之一,使用expect-send...
    99+
    2023-06-09
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作