shell中使用$符号来取一个变量的值,常见的就是$VAR或者${VAR},为了搞懂其它$#,$@,$0,$1,$2,$*,$$,$?的意义,我们可以写一个测试脚本运行下:

#! /bin/bashVAR="Hello World!"
echo "\$VAR : $VAR"echo "\$# argc: $#"
echo "\$@ argv[]: $@"
echo "\$0 argv[0]: $0"
echo "\$1 argv[1]: $1"
echo "\$2 argv[2]: $2"
echo "\$* argv_str: $*"
echo "\$$ pid: $$"
echo "\$? retcode: $?"

运行结果如下:

./test.sh a b c d$VAR : Hello World!
$# argc: 4
$@ argv[]: a b c d
$0 argv[0]: ./test
$1 argv[1]: a
$2 argv[2]: b
$* argv_str: a b c d
$$ pid: 11700
$? retcode: 0

我在echo时做了下标注,意义应该很明显了

$# 代表传入参数的个数
$@ 代表传入参数的列表
$0 代表脚本本身
$1 代表传入的第一个参数,$2,$3...以此类推
$* 以字符串方式显示所有传入的参数
$$ 脚本运行的进程ID
$? 显示最后命令的退出状况,0表示没有错误

此外,$-记录着当前设置的shell选项,himBH是默认值,5个字母分别有各自含义,解释如下:

  • h:hashall,打开这个选项后,Shell 会将命令所在的路径记录下来,避免每次都要查询。举例:当h选项开启时,如果将某个自定义命令从/usr/bin/目录下移动到/usr/local/bin/,再运行,会提示无此命令。而当通过set +h将h选项关闭后,上述情况就不会出现。
  • i:interactive-comments,包含这个选项说明当前的 shell 是一个交互式的 shell。所谓的交互式shell,就是输入命令后,shell解释执行,然后返回一个结果。在脚本中,i选项是关闭的。
  • m:monitor,打开监控模式,就可以通过Job control来控制进程的停止、继续,后台或者前台执行等。
  • B:braceexpand,大括号扩展
  • H:history,Shell 会把我们执行的命令记录下来,可以通过 history 命令查看,每一行是序号 + 执行的命令,在 shell 退出时,会将这些信息保存到~/.bash_history 文件中。如果H选项打开,就可以展开历史列表中的命令,可以通过!感叹号来完成,例如"!!“返回上最近的一个历史命令,”!n"返回第 n 个历史命令

shell中$的作用相关推荐

  1. shell中的mput_FTP命令详解 及 shell中的使用

    FTP命令详解 FTP的命令格式为:ftp-v-u-d-i-n-g[IP地址]-v显示远程服务器的所有响应信息(verbose:详细,繁冗)-n限制ftp的自动登录,即不使用-d使用调试方式(debu ...

  2. Shell编程规范与变量(shell编程规范,执行脚本文件的四种方式,管道符号与重定向,shell变量的作用于类型)

    文章目录 Shell脚本概述 Shell脚本的概念 Shell的作用 Shell编程规范 重定向与管道 Shell脚本变量 自定义变量 特殊变量 Shell脚本概述 Shell Script ,She ...

  3. shell脚本的作用

    脚本(script)就是包含一系列命令的一个文本文件.Shell 读取这个文件,依次执行里面的所有命令,就好像这些命令直接输入到命令行一样.所有能够在命令行完成的任务,都能够用脚本完成. 脚本的好处是 ...

  4. shell中的while

    shell中的while 基本语法 while [ 条件判断式 ] do 程序 done 应用实例 案例 1 :从命令行输入一个数 n,统计从 1+..+ n 的值是多少? #!/bin/bash#案 ...

  5. SHELL中if的使用

    shell中if的使用 shell中if的基本使用 shell中if的基本使用 SHELL中if中条件表达式的使用 shell中if的整数比较 shell中if的浮点数比较 shell中if的字符比较 ...

  6. shell 中 time的使用

    装载 : https://codingstandards.iteye.com/blog/798788 用途说明 time命令常用于测量一个命令的运行时间,注意不是用来显示和修改系统时间的(这是date ...

  7. shell中except 的使用

    文章目录 except 的介绍 except 的使用 转载于: http://blog.chinaunix.net/uid-20690190-id-1894513.html 感谢 except 的介绍 ...

  8. linux 脚本 ,shell中的与

    在linxu中,前一个命令执行的结果正确,则Linux会回传一个$?=0的值. 如果要继续根据此回传值来判断后续的指令是否要执行,此时就要考虑使用&&及||运算符. 例一:使用 ls ...

  9. shell中的wait

    cat test1 | uniq > newtest1 & cat test2 | uniq > newtest2 & wait diff newtest1 newtest ...

最新文章

  1. 手把手教你如何新建scrapy爬虫框架的第一个项目(下)
  2. 细说Django的admin
  3. CSS Image Rollovers翻转效果Image Sprites图片精灵
  4. 交叉熵(cross_entropy)作为损失函数在神经网络中的作用
  5. django ajax 简书,Django_ajax
  6. 排错“未能封送类型,因为嵌入数组实例的长度与布局中声明的长度不匹配”...
  7. scala集合中添加元素_如何在Scala中获得列表的第一个元素?
  8. 清华大学计算机科学与技术在哪个楼,清华大学计算机科学与技术系宿舍
  9. key-value 多线程server的Linux C++实现
  10. Python不使用int()函数把字符串转换为数字
  11. 【JS】引用类型之RegExp
  12. BZOJ3235 [Ahoi2013]好方的蛇 【单调栈 + dp】
  13. session简单学习2
  14. Python教学视频(六)关系及逻辑运算
  15. 2022国产WMS仓库管理系统排名
  16. python求和函数详解_python 中求和函数 sum详解
  17. Deeplink最全解析
  18. Python实用模块(二十四)tenacity
  19. 开发基于地图的火车站点查询系统
  20. python将word表格转写入excel

热门文章

  1. 自由职业者de哪些时间
  2. 数字经济发展势头强劲
  3. CodeForces - 371D. Vessels(并查集)
  4. 双电阻差分电流采样_并联电阻的分流电感很重要
  5. 免费申请HTTPS证书六大方法
  6. 2020牛客多校暑期训练营(赛后总结和补题)
  7. VC(VISUAL_C++)虚拟键VK值列表
  8. 2023最新Bty分销系统v1.0宝塔分销开源版源码/功能强大+站长已实测
  9. java中汉字究竟占几个字节?
  10. OCR数据集生成利器—TextRecognitionDataGenerator