shell指令码中的$*,$@和$#是啥意思?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了shell指令码中的$*,$@和$#是啥意思?相关的知识,希望对你有一定的参考价值。

参考技术A

shell指令码中的$*,$@和$#是什么意思?

我没用过$@,但是可以自己写个指令码测试下。
先介绍下我知道的,如下:
位置变数 :$0,$1,$2,$3,$4,$5,$6,$7,$8,$9 $0显示执行的指令码,$1...显示位置引数的值
预定义变数:
$# 表示位置引数的数量
$* 表示所有位置引数的内容
$? 表示命令执行后返回的状态 (执行成功 返回0 执行不成功 返回非0)
$$ 表示当前程序的程序号 希望开启一个程序后不再开启另一个(/proc/<PID>)
$! 表示后台执行的最后一个程序号
$0 表示当前的程序名
测试指令码如下:(位置变数只输出到$3)
[root@XP-24-35 script]#vim a.sh
#!/bin/bash
echo \'$0 ==> \' $0
echo \'$1 ==> \' $1
echo \'$2 ==> \' $2
echo \'$3 ==> \' $3
echo \'$$ ==> \' $$
echo \'$* ==> \' $*
echo \'$@ ==> \' $@
echo \'$# ==> \' $#
echo \'$? ==> \' $?
执行结果1(输入小于三个位置引数a,b)
[root@XP-24-35 script]# ./a.sh a b
$0 ==> ./a.sh
$1 ==> a
$2 ==> b
$3 ==>
$$ ==> 4847
$* ==> a b
$@ ==> a b
$# ==> 2
$? ==> 0
执行结果2(刚好输入三个位置引数)
[root@XP-24-35 script]# ./a.sh a b c
$0 ==> ./a.sh
$1 ==> a
$2 ==> b
$3 ==> c
$$ ==> 4844
$* ==> a b c
$@ ==> a b c
$# ==> 3
$? ==> 0
执行结果3(输入大于3个位置引数)
[root@XP-24-35 script]# ./a.sh a b c d e f
$0 ==> ./a.sh
$1 ==> a
$2 ==> b
$3 ==> c
$$ ==> 4852
$* ==> a b c d e f
$@ ==> a b c d e f
$# ==> 6
$? ==> 0
实验结果说明一切,忘采纳,谢谢。

shell指令码中的$是什么意思

$ 钱号(dollar sign)
变数替换(Variable Substitution)的代表符号。
vrs=123
echo $vrs
123

shell指令码中的“$<”是什么意思?

暂时没有发现shell中这样的环境变数
shell的系统环境变数包括以下
$n $1 表示第一个引数,$2 表示第二个引数 ...
$# 命令列引数的个数
$0 当前程式的名称
$? 前一个命令或函式的返回码
$* 以"引数1 引数2 ... " 形式储存所有引数
$@ 以"引数1" "引数2" ... 形式储存所有引数
$$ 本程式的(程序ID号)PID
$! 上一个命令的PID

shell指令码中#是什么意思

#在shell指令码中是注释的意思,用于说明程式码的作用。
比如
# 输出内容
echo "输出内容"

作业系统与外部最主要的介面就叫做shell。shell是作业系统最外面的一层。shell管理你与作业系统之间的互动:等待你输入,向作业系统解
释你的输入,并且处理各种各样的作业系统的输出结果。 shell提供了你与作业系统之间通讯的方式。这种通讯可以以互动方式(从键盘输
入,并且可以立即得到响应),或者以shell script(非互动)方式执行。shell script是放在档案中的一串shell和作业系统命令,它们可以被
重复使用。本质上,shell script是命令列命令简单的组合到一个档案里面。 Shell基本上是一个命令直译器,类似于DOS下的mand.
。它接收使用者命令(如ls等),然后呼叫相应的应用程式。较为通用的shell有标准的Bourne shell (sh)和C shell (csh)。
互动式shell和非互动式shell 互动式模式就是shell等待你的输入,并且执行你提交的命令。这种模式被称作互动式是因为shell与使用者进行交
互。这种模式也是大多数使用者非常熟悉的:登入、执行一些命令、签退。当你签退后,shell也终止了。 shell也可以执行在另外一种模式:非
互动式模式。在这种模式下,shell不与你进行互动,而是读取存放在档案中的命令,并且执行它们。当它读到档案的结尾,shell也就终止了。
shell的型别在UNIX中主要有两大类shell Bourne shell (包括 sh, ksh, and bash) Bourne shell ( sh) Korn shell ( ksh) Bourne Again
shell ( bash) POSIX shell ( sh) C shell (包括 csh and tcsh) C shell ( csh) TENEX/TOPS C shell ( tcsh).
附:LINUX系统的shell原理
Linux系统的shell作为作业系统的外壳,为使用者提供使用作业系统的介面。它是命令语言、命令解释程式及程式设计语言的统称。
shell是使用者和Linux核心之间的介面程式,如果把Linux核心想象成一个球体的中心,shell就是围绕核心的外层。当从shell或其他程式向
Linux传递命令时,核心会做出相应的反应。 shell是一个命令语言直译器,它拥有自己内建的shell命令集,shell也能被系统中其他应用
程式所呼叫。使用者在提示符下输入的命令都由shell先解释然后传给Linux核心。

linux shell指令码中 $? 和 $@是什么意思???

$@ :以("$1""$2"...)的形式储存所有输入的命令列引数;
$? :上一条命令的返回结果.

请教shell指令码中的&是什么意思

& 后台工作
单一个& 符号,且放在完整指令列的最后端,即表示将该指令列放入后台中工作。
tar cvfz data.tar.gz data > /dev/null &

shell指令码中lcd是什么意思

你shell指令码中的 lcd 命令,应该是ftp的内建命令。代表 change local directory——切换本地目录
用法:
lcd /path/to/your/directory
注:/path/to/your/directory是你的一个本地目录
ftp 还有一个内建命令 cd
当你登入ftp伺服器后,就可以用cd命令,切换远端目录

shell指令码中 crontab - 是什么意思?

-表示标准输入
如果不加这个-,意思是一样的
查询当前crontab档案,去掉其中包括/root/monit/monit_reset.sh的行

Nand2Tetris C 指令组合中的“a”是啥意思?

【中文标题】Nand2Tetris C 指令组合中的“a”是啥意思?【英文标题】:What does the 'a' means in Nand2Tetris C-instruction comp?Nand2Tetris C 指令组合中的“a”是什么意思? 【发布时间】:2019-04-19 06:09:20 【问题描述】:

我在学习 Nand2Tetris 汇编部分的时候,并没有真正了解 'a'。它是如何工作的?

在单位中,无论如何它不使用它存在的原因。

【问题讨论】:

【参考方案1】:

如果您查看documentation of the assembly language 幻灯片 8,它被解释为一个标志,它是选择使用哪个比较操作的一部分。它选择在比较中使用 A 还是 M。

请看这张图片的左下角。

【讨论】:

以上是关于shell指令码中的$*,$@和$#是啥意思?的主要内容,如果未能解决你的问题,请参考以下文章

mac的shell是啥

linux的shell编程中#!/bin/sh和$bash是啥意思?

linux命令man是啥意思

linux中的shell是啥意思?

XML 中的“独立”指令是啥意思?

shell是啥意思?