$# 是传给脚本的参数个数
$ 是脚本本身的名字
$ 是传递给该shell脚本的第一个参数
$ 是传递给该shell脚本的第二个参数
$@ 是传给脚本的所有参数的列表
$* 是以一个单字符串显示所有向脚本传递的参数,与位置变量不同,参数可超过9个
$$ 是脚本运行的当前进程ID号
$? 是显示最后命令的退出状态,0表示没有错误,其他表示有错误
区别:@*
  • 相同点:都是引用所有参数
  • 不同点:只有在双引号中体现出来。假设在脚本运行时写了三个参数(分别存储在12 3)则"*" 等价于 “12 3"(传递了一个参数);而“@" 等价于 "1""2" "$3"(传递了三个参数)

例子一:

 ##dels.sh
echo "number:$#"
echo "scname:$0"
echo "first :$1"
echo "second:$2"
echo "argume:$@"
echo "show parm list:$*"
echo "show process id:$$"
echo "show precomm stat: $?"

执行结果为:

[@jihite]$ sh del.sh
number:
scname:del.sh
first:
second:
argume:
show parm list:
show process id:
show precomm stat:

例子二:

 #!/bin/sh
num=$#
name=$
echo "number:$num"
echo "scname:$name"
echo $
echo $
echo $ for ((i=; i<$num; i++))
do
echo "$i"
done echo "argume:$@"
for key in $@
do
echo $key
done
echo "-----------------"
for key in "$@"
do
echo $key
done
echo "-----------------------------"
for key2 in $*
do
echo $key2
done
echo "-----------------"
for key2 in "$*"
do
echo $key2
done echo "show process id:$$"
cho
echo "show precomm stat: $?"

执行结果:

 [@jihite]$ sh del.sh a b
number:
scname:del.sh
del.sh
a
b argume:a b
a
b
-----------------
a
b
-----------------------------
a
b
-----------------
a b
show process id:
del.sh: line : cho: command not found
show precomm stat:

问题:

echo #0 #1 能不能用 $i 表示呢?


原文地址 -> 戳我

随机推荐

  1. flex 添加右键链接

    private var myMenu:ContextMenu; private function setViewerVersion():void { var menuItem:ContextMenuI ...

  2. [算法][包围盒]AABB简单类

    头文件: #pragma once #include <iostream> //一个假的点类型 struct Vector3 { float x; float y; float z; }; ...

  3. C# 添加.DLL 出错的解决方法

    解决方法:    1.     注册组件:       运行--cmd--regsvr32 dll的绝对路径名(例如: regsvr32  C:\bin\EFGateWayOfERP.dll) 如果注 ...

  4. LA 3907 Puzzle

    问题描述:先给你s个禁止串,求不包含禁止串的最长串,如果存在,打印字典序最大. 数据范围:s <= 1000, 禁止串长度不超过50. 分析:不匹配问题实际上等同于匹配问题.假设我们已经有满足条 ...

  5. .Uva&LA部分题目代码

    1.LA 5694 Adding New Machine 关键词:数据结构,线段树,扫描线(FIFO) #include <algorithm> #include <cstdio&g ...

  6. UVa 213,World Finals 1991,信息解码

    题目链接:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem ...

  7. ThreadLocal深入理解二

    转载:http://doc00.com/doc/101101jf6 今天在看之前转载的博客:ThreadLocal的内部实现原理.突然有个疑问, 按照threadLocal的原理, 当把一个对象存入到 ...

  8. Entity Framework 第六篇 分页查询

    目前分页支持单表 , ) where TEntity : class { ) * size; var _reset = Get(filter, orderBy); total = _reset.Cou ...

  9. laravel框架总结(二) -- blade模板引擎

    ## 1.基本用法 ##情形1 $name = laravel5 <div class="title"> {{$name}} {{$name}}</div> ...

  10. JAVA中线程池启动定时任务

    /** * 用线程池启动定时器 * @param args */ public static void main(String[] args) { //10秒启动 Executors.newSched ...