Shell 位置參數總結

描述:

位置參數指的是shell腳本的命令行參數,同時也表示shell函數的額函數參數。

說明:

wKiom1exn6Hyoa_EAAA2r_iATJg372.png

示例:

#!/bin/sh
echo "number:$#"     # 傳給腳本的參數個數
echo "scname:$0"     # 腳本的名字
echo "first :$1"     # 傳遞給該shell腳本的第一參數
echo "second:$2"     # 傳遞給該shell腳本的第二個參數
echo "argume:$@"        # 傳遞給腳本的所有的參數的列表
echo "show parm list:$*"    # 以一個單字符串顯示所有向腳本傳遞的參數,
                   與位置不同,參數可以超過九個
echo "show process id:$$"    # 腳本運行的當前ID號
echo "show precomm stat: $?"  # 顯示最后命令的退出狀態,0表示正確,其它數字表示錯誤

# ./variable aa bb
number:2
scname:./variable
first:aa
second:bb
argume:aa bb
show parm list:aa bb
show process id:24544
show precomm stat:0

$@  與 $* 的相同點如下:

1、直接輸出不保留空格

2、帶雙引號輸出會保留帶引號的空格

3、不帶雙引號循環遍歷的輸出結果一樣:每個字符串單獨輸出

不同點如下:

1、帶雙引號遍歷$*相當于帶雙引號輸出$*

2、帶雙引號遍歷$@分別輸出每個參數,帶雙引號的參數保留空格輸出

[root@localhost ~]# set 'apple pie' pears peaches
[root@localhost ~]# for i in $*      
> do
> echo $i           
> done
apple
pie
pears
peaches

[root@localhost ~]# set 'apple pie' pears peaches
[root@localhost ~]# for i in $@
> do
> echo $i
> done
apple
pie
pears
peaches

[root@localhost ~]# set 'apple pie' pears peaches
[root@localhost ~]# for i in "$*"
> do
> echo $i            # 將所有參數變量視為一個
> done
apple pie pears peaches

[root@localhost ~]# set 'apple pie' pears peaches
[root@localhost ~]# for i in "$@"
> do
> echo $i          #  這里的單引號將兩個單詞合成一個
> done
apple pie
pears
peaches

原創文章,作者:pingsky,如若轉載,請注明出處:http://www.www58058.com/36084

(0)
pingskypingsky
上一篇 2016-08-16 13:59
下一篇 2016-08-16 13:59

相關推薦

  • N26-第八周

    1、請描述網橋、集線器、二層交換機、三層交換機、路由器的功能、使用場景與區別。     網橋(birdge):工作于OSI模型中的數據鏈路層,是連接兩個局域網的一種存儲/轉發設備,能將一個大的LAN分割為多個網段,或將兩個以上的LAN互聯為一個邏輯LAN,使LAN上的所有用戶都可訪問服務器,可以分割沖突域。   &nb…

    2017-03-08
  • OpenSSH

    ssh: secure shell, protocol, 22/tcp, 安全的遠程登錄 OpenSSH: ssh協議的開源實現; dropbear:另一個開源實現;  SSH協議版本 v1: 基于CRC-32做MAC,不安全;man-in-middle v2:雙方主機協議選擇安全的MAC方式 基于DH算法做密鑰交換,基于RSA或DSA算法實現身份…

    Linux干貨 2015-06-21
  • nfs 共享實驗

    nfs全稱為:network file system    網絡文件系統 在Linux里可以理解為將一個文件夾變成共享文件夾,讓其他用戶都可以訪問。而訪問的主機其本地磁盤是沒有存儲文件的 創建方法如下 :     準備兩臺機器,一臺當 client  另一臺當server    &nbsp…

    Linux干貨 2017-06-07
  • N27_網絡班第八周作業

    1、寫一個腳本,使用ping命令探測172.16.250.1-172.16.250.254之間所有主機的在線狀態; 在線的主機使用綠色顯示; 不在線的主機用紅色表示; #!bin/bash # for i in `seq 254`;do if ping -c 1 192.168.68.$i &> /dev/null;then echo -e “…

    2017-09-28
  • 基于LNMP網站平臺,測試增加memcached緩存系統后網站訪問效果

    LNMP安裝教程鏈接:22-love cat 17周博客作業第2部分-構建一個LVS-DR模型的高性能集群 memcached 安裝及測試效果 一、概念     memcached 是一個高性能的分布式內存對象緩存系統,用于動態Web應用以減輕數據庫負載。它通過在內存中緩存數據和對象來減少讀取數據庫的次數,從而提高動態…

    Linux干貨 2016-08-22
  • Vim和nano的區別

    Vim和nano的區別 Linux下有很多文本編輯器,其中系統(不管哪個分支)都會自帶nano和vim這兩個最基本的編輯器。vim相當于vim的升級版。今天將重點分析一下vim與nano的各自功能及區別。 1.nano 直接在命令行中敲入nano newfile即可打開文件或新建文件。 可以看到第一行反白介紹了nano的版本號以及被編輯的文件名稱。接下來就是…

    2017-08-05

評論列表(1條)

  • 馬哥教育
    馬哥教育 2016-08-16 15:16

    寫的較為簡單哦,變量分為本地變量,環境變量,全局變量,位置變量,特殊變量等,這些都需要自己去整理的哦

欧美性久久久久