感悟网 导航

shell脚本中的$*,$@和$#是什么意思? shell脚本中的$*,$@和$#分别是什么意思?

作者&投稿:鄞友 (若有异议请与网页底部的电邮联系)
shell脚本中的$*,$@和$#~

举例说:
脚本名称叫test.sh 入参三个: 1 2 3
运行test.sh 1 2 3后
$*为"1 2 3"(一起被引号包住)
$@为"1" "2" "3"(分别被包住)
$#为3(参数数量)

举例说:
脚本名称叫test.sh 入参三个: 1 2 3
运行test.sh 1 2 3后
$*为"1 2 3"(一起被引号包住)
$@为"1" "2" "3"(分别被包住)
$#为3(参数数量)

  我没用过$@,但是可以自己写个脚本测试下。
先介绍下我知道的,如下:
位置变量 :$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

  实验结果说明一切,忘采纳,谢谢。

《linux shell 怎么写》
答:在shell脚本中可以使用三类命令:1)Unix 命令: 虽然在shell脚本中可以使用任意的unix命令,但是还是由一些相对更常用的命令。这些命令通常是用来进行文件和文字操作的。常用命令语法及功能 echo "some text": 将文字内容打印在屏幕上 ls: 文件列表 wc –l file :计算文件行数wc -w file:计算文件中的单词数wc -c...

《如何编写一个shell脚本》
答:Shell命令和流程控制 在shell脚本中可以使用三类命令: 1)Unix 命令: 虽然在shell脚本中可以使用任意的unix命令,但是还是由一些相对更常用的命令。这些命令通常是用来进行文件和文字操作的。 常用命令语法及功能 echo "some text": 将文字内容打印在屏幕上 ls: 文件列表 wc –l filewc -w filewc -c file: 计算...

《编写一个shell脚本,依次判断位置参数$1-$9代表的文件名,在当前目录下是...》
答:题主你好,代码及测试截图如下:说明: 上图共有3条命令:第一条: ls -l列出了当前文件夹中共有5个文件, 分别为A,B,C,D,user.sh.这里面user.sh是我们的脚本文件;第二条: cat user.sh 看一下user.sh这个脚本中的内容;第三条: ./user.sh A B C E 执行脚本;.这里面代码中没有明确给出...

《shell中${}的使用》
答:在shell中经常要对变量进行字符串的截取操作,虽然截取字符串的方法很多,在这里用${}的方法操作变量应该是最简洁的方式。shell脚本中经常要对输入的参数截取其路径或文件名,例如变量file中保存着输入参数:这里的最大匹配和最小匹配与正则表达式是不是很像,但是用起来简单方便。如果觉得不方便记忆,可以...

《linuxshell编程》
答:二、Shell编程实战 1.实现文件备份 文件备份是一项常见的操作,可以通过Shell脚本来实现。以下是一个简单的文件备份脚本:```!/bin/bash 备份文件 tar-czvfbackup.tar.gz/home/user ```以上脚本将/home/user目录下的文件备份到backup.tar.gz文件中。2.实现定时任务 定时任务是一项非常实用的功能,...

《unix 下shell脚本中的$?代表什么意思啊?》
答:示例一:在命令行里使用:tux@tux-desktop:~$ cd /no_such_dir bash: cd: /no_such_dir: No such file or directory tux@tux-desktop:~$ echo $?1 tux@tux-desktop:~$ cd /boot/ tux@tux-desktop:/boot$ echo $?0 示例二:在SHELL脚本里使用 !/bin/bash cd ~/test/aaa 1>/dev/...

《shell脚本疑问,"$1"代表什么》
答:这边的 $1 就是你输入的脚本后面的参数啊,如果你脚本后面有参数 -k 就话,脚本执行时 $1就会变成你输入的参数了。

《shell中${0}和${1}这些指什么? 例如echo ${0}为-bash》
答:如果在直接在命令行中敲echo $0,则打印的是当前运行的shell名。(如ksh,bash,csh)如果在脚本中,$0表示脚本名称或函数名称,$1,表示脚本或函数的第一个参数。以此类推。这个类似c语言中的argv。

《Shell脚本:${...}在字符串中的多种用法》
答:将var中的字符串A替换成字符串B(${var/A/B})。var="hello world"echo ${var/hello/hi} >>> hi world      # 字符串"hello"替换成了"hi"echo ${var/l/X} >>> heXlo world  # 第一个"l"替换成了"X"9、${var///} 字符串替换,与第8点相同,只...

《shell求讲解如下脚本中{#fileinfo[@]}和${fileinfo[$(( i+1 ))]}...》
答:{#fileinfo[@]} 是取的fileinfo这个数组的个数 fileinfo是一个数组,每个数组元素按照0-1,2,3,n来表示 这个数组的结构是一个数值,一个目录,举个例子fileinfo[0]是这个目录的容量 fileinfo[1]就是这个目录名字 也就是当这个目录容量 小于等于 10 时,执行then后边的语句。mv ${fileinfo[$...

   

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