zoukankan      html  css  js  c++  java
  • Shell

    $0

    表示所执行程序的路径名。

    [huey@huey-K42JE ~]$ ll ~/bin
    total 4
    -rwxrwxr-x 1 huey huey 21 Oct 24 14:39 hello
    [huey@huey-K42JE ~]$ cat ~/bin/hello 
    #!/bin/bash
    
    echo '$0:' $0
    [huey@huey-K42JE ~]$ hello 
    /home/huey/bin/hello
    [huey@huey-K42JE ~]$ 

    $n

    表示传递给脚本或函数的第 n 个参数,如 $1 表示第一个参数。

    [huey@huey-K42JE ~]$ ll ~/bin
    total 4
    -rwxrwxr-x 1 huey huey 63 Oct 24 14:52 hello
    [huey@huey-K42JE ~]$ cat ~/bin/hello 
    #!/bin/bash
    
    echo '$1:' $1
    echo '$10:' $10
    echo '${10}:' ${10}
    [huey@huey-K42JE ~]$ hello a b c d e f g h i j
    $1: a
    $10: a0
    ${10}: j

    注意:第 10 个参数,用 ${10} 表示,而不是 $10。

    $#

    表示传递给脚本或函数的参数个数。

    [huey@huey-K42JE ~]$ ll ~/bin
    total 4
    -rwxrwxr-x 1 huey huey 27 Oct 24 15:00 hello
    [huey@huey-K42JE ~]$ cat ~/bin/hello
    #!/bin/bash
    
    echo '$#:' $#
    [huey@huey-K42JE ~]$ hello
    $#: 0
    [huey@huey-K42JE ~]$ hello a b c
    $#: 3

    $*

    表示传递给脚本或函数的所有参数。当包括在双引号内时,扩展为双引号引用的有全部位置参数构成的字符串,每个位置参数以 IFS 变量的第一个字符(默认情况下为空格)间隔开。

    $@

    表示传递给脚本或函数的所有参数。当包括在双引号内时,将每个位置参数扩展为双引号引用的单独单词。

    [huey@huey-K42JE ~]$ ll ~/bin
    total 4
    -rwxrwxr-x 1 huey huey 284 Oct 24 15:21 hello
    [huey@huey-K42JE ~]$ cat ~/bin/hello 
    #!/bin/bash
    
    echo 'Print each param from $*:'
    for var in $*
    do
    	echo $var
    done
    
    echo 'Print each param from $@:'
    for var in $@
    do
    	echo $var
    done
    
    echo 'Print each param from "$*":'
    for var in "$*"
    do
    	echo $var
    done
    
    echo 'Print each param from "$@":'
    for var in "$@"
    do
    	echo $var
    done
    [huey@huey-K42JE ~]$ hello a b c
    Print each param from $*:
    a
    b
    c
    Print each param from $@:
    a
    b
    c
    Print each param from "$*":
    a b c
    Print each param from "$@":
    a
    b
    c

    $?

    表示上个命令退出的状态或函数的返回值。

    $$

    表示当前 Shell 的进程 ID。

    [huey@huey-K42JE cmdline]$ ps
      PID TTY          TIME CMD
    17379 pts/3    00:00:00 bash
    18370 pts/3    00:00:00 ps
    [huey@huey-K42JE cmdline]$ echo $$
    17379
  • 相关阅读:
    hdu 4612 Warm up 双连通缩点+树的直径
    Hadoop-04-HBase全然分布式环境搭建
    java实现的Trie树数据结构
    Sharpui企业版-简单介绍【01】 【QQ群:206378966】
    Apache Mina开发手冊之四
    POJ训练计划1459_Power Network(网络流最大流/Dinic)
    svn+ssh
    Android首席设计师宣称移动概念已死,开发人员应该面向屏幕编写应用而非移动
    连锁快餐企业软件的一些管理
    多进程解决datasnap支持的tcp长连接数量少的问题
  • 原文地址:https://www.cnblogs.com/huey/p/4907060.html
Copyright © 2011-2022 走看看