感悟网 导航

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

作者&投稿:溥重 (若有异议请与网页底部的电邮联系)
~

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的行



《shell指令码中的$*,$@和$#是什么意思?》
答:shell指令码中lcd是什么意思 你shell指令码中的 lcd 命令,应该是ftp的内建命令。代表 change local directory——切换本地目录 用法: lcd /path/to/your/directory 注:/path/to/your/directory是你的一个本地目录 ftp 还有一个内建命令 cd 当你登入ftp伺服器后,就可以用cd命令,切换远...

《shell脚本中的$*,$@和$#是什么意思?》
答:我没用过$@,但是可以自己写个脚本测试下。先介绍下我知道的,如下:位置变量 :$0,$1,$2,$3,$4,$5,$6,$7,$8,$9 $0显示运行的脚本,$1...显示位置参数的值 预定义变量:表示位置参数的数量 表示所有位置参数的内容 ? 表示命令执行后返回的状态 (执行成功 返回0 执行不成功 ...

《在bash shell里 $0 $? $* $@ 各表示什么意思?》
答:0就是该bash文件名,?是上一指令的返回值,所有位置参数的内容:就是调用调用本bash shell的参数。基本上与上面相同。“$*”返回的是一个字符串,字符串中存在多外空格。“$@”返回多个字符串。

《shell脚本中的$*,$@和$#》
答:脚本名称叫test.sh 入参三个: 1 2 3 运行test.sh 1 2 3后 为"1 2 3"(一起被引号包住)为"1" "2" "3"(分别被包住)为3(参数数量)

《linux shell 中这两个$* $@有啥区别呀。。》
答:相同点:都是引用所有参数 不同点:只有在双引号中体现出来 假设你的脚本运行时你写了三个参数 分别存储在$1 $2 $3中 则"$*" 等价于 “$1 $2 $3" ---》传递了一个参数 而“$@" 等价于 "$1" "$2" "$3" ---》传递了三个参数 ...

《特殊变量在Shell脚本中的功能和使用示例是什么?》
答:在 Shell 脚本中,如:运行这个脚本:./test.sh Zara Ali 输出将显示:FileName: ./test.sh FirstParameter: Zara SecondParameter: Ali QuotedValues: Zara Ali QuotedValues: Zara Ali TotalNumberOfParameters: 2 特殊参数 $* 和 $@ 的区别在于处理命令行参数时,$* 作为一个整体显示,而 $@ ...

《shell 中 $( ) 是什么意思》
答:2. $* 以一个单字符串显示所有向脚本传递的参数。与位置变量不同,此选项参数可超过9个 3. $$ 脚本运行的当前进程ID号 4. $! 后台运行的最后一个进程的进程ID号 5. $@ 与$#相同,但是使用时加引号,并在引号中返回每个参数 6. $- 显示shell使用的当前选项,与set命令功能相同 7. $?

《shell 脚本中$$,$#,$?分别代表什么意思?》
答:$! 执行上一个背景指令的PID(后台运行的最后一个进程的进程ID号)$? 执行上一个指令的返回值 (显示最后命令的退出状态。0表示没有错误,其他任何值表明有错误)$- 显示shell使用的当前选项,与set命令功能相同$@ 跟$*类似,但是可以当作数组用 本回答由提问者推荐 举报| 答案纠错 | 评论(4) 360 26 dreamqiang...

《shell编程中for file in $*; do是什么意思》
答:就是一个循环查找的东西,学过C 语言比较好理解.$*是通配符

《linuxshell$》
答:这个程式的参数个数 这个程式的PID(脚本运行的当前进程ID号)!执行上一个背景指令的PID(后台运行的最后一个进程的进程ID号)?执行上一个指令的返回值(显示最后命令的退出状态。0表示没有错误,其他任何值表明有错误)-显示shell使用的当前选项,与set命令功能相同 跟$*类似,但是可以当作数组用 ...

   

返回顶部
本页内容来自于网友发表,若有相关事宜请照下面的电邮联系
感悟网