shell 中 的位置变量

简介:

  shell 中常见的位置参数如下


$# : 用来统计参数的个数


$@ :会将命令行的所有的参数当做同一个字符串中的多个独立单词


$* :会将命令行的参数当做一个参数来保存



举例说明

 

 参数 $# 

1
2
3
4
5
6
cat  test8.sh 
#!/bin/bash
## getting the unmber of parameters 
 
#
echo  there are $ # parameters supplied

./test8.sh 1 2 3 

there are 3 parameters supplied


参数的简单运算,当输入正确的参数时进行运算、错误的时候输入脚本用法

1
2
3
4
5
6
7
8
9
10
11
12
#!/bin/bash
## testing parameters
#
 
if  [ $ # -ne 2  ]
then 
  echo  Usage: test9.sh a b
else 
total=$[ $1 + $2  ]
echo  The total is $total
#echo 
fi

./test9.sh 8 56

The total is 64


./test9.sh 81  

Usage: test9.sh a b


参数$@ 和$#

1
2
3
4
5
6
7
#!/bin/bash
#testing $* and $@
echo
#echo "Using the $* method: $*"
echo  "Using the \$* method: $*"
echo 
echo  "Using the \$@ method: $@"


./test11.sh aa bb cc 


Using the $* method: aa bb cc


Using the $@ method: aa bb cc


上述例子表面上$@ 和$# 的用法是一样的,下面的例子将会加以区分

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#!/bin/bash
# testing $* and $@
#
echo 
count=1
 
#
for  param  in  "$*"
do 
  echo  "\$* parameter #$count = $param"
  count=$[ $count + 1 ]
done
 
echo  "-------------------------------------"
#
for  param  in  "$@"
do 
  echo  "\$@ parameter #$count = $param"
  count=$[ $count + 1 ]
done

./test12.sh aa bb cc dd


$* parameter #1 = aa bb cc dd

-------------------------------------

$@ parameter #2 = aa

$@ parameter #3 = bb

$@ parameter #4 = cc

$@ parameter #5 = dd





本文转自 水滴石川1 51CTO博客,原文链接:http://blog.51cto.com/sdsca/1903992,如需转载请自行联系原作者

相关文章
|
8月前
|
Shell Linux
|
8月前
|
Shell Python
python 和shell 变量互相传递
python 和shell 变量互相传递
82 0
|
8月前
|
Shell Linux
Linux下的Shell基础——变量、运算符、条件判断(二)
Linux下的Shell基础——变量、运算符、条件判断(二)
136 0
|
3月前
|
存储 Java Shell
Shell 变量
10月更文挑战第2天
35 0
|
4月前
|
Shell
shell脚本变量 $name ${name}啥区别
shell脚本变量 $name ${name}啥区别
|
4月前
|
Java Shell Linux
Shell 变量设置
Shell设置变量
62 5
|
5月前
|
Shell
[shell]在curl测试的data参数中引用变量
[shell]在curl测试的data参数中引用变量
274 1
|
4月前
|
Java Shell Linux
Shell 变量设置25-1
Shell编程语言是一种非类型的解释型语言,无需像C++/Java那样事先声明变量。通过赋值即可定义变量,在Linux支持的所有Shell中均适用。变量分为局部变量与环境变量,前者仅限于定义脚本内使用,后者可在其派生的子进程中使用。常见系统变量如$0表示当前程序名称,$n表示第n个参数(n=1,2,...,9),$*代表所有参数,$#代表参数个数,$?表示命令执行后的状态(0为成功),$UID为当前用户ID,$PWD表示当前目录。定义变量如`A=123`,
38 0
|
6月前
|
分布式计算 大数据 Shell
MaxCompute产品使用合集之odps shell如何将ech变量的结果集合写入文件,并且指定服务器的位置
MaxCompute作为一款全面的大数据处理平台,广泛应用于各类大数据分析、数据挖掘、BI及机器学习场景。掌握其核心功能、熟练操作流程、遵循最佳实践,可以帮助用户高效、安全地管理和利用海量数据。以下是一个关于MaxCompute产品使用的合集,涵盖了其核心功能、应用场景、操作流程以及最佳实践等内容。
59 10
|
8月前
|
Shell Linux Perl
Linux|如何允许 awk 使用 Shell 变量
Linux|如何允许 awk 使用 Shell 变量
104 2