歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

bash 腳本編程四 外部參數 IFS

通過$0可以獲取傳遞來的第一個參數,就是腳本自己,$1可以獲得第二個參數,比如:

  1. #!/bin/bash  
  2. echo "$0"  
  3. echo "$1"  
運行程序
  1. ./test/sh q  

看到:

  1. $ ./test.sh q  
  2. ./test.sh  
  3. q  

傳遞參數的時候,如果是字符串,可以用單引號或者雙引號包起來,表示這是一個完整的參數:

  1. ./test.sh 'this is a test'  

既然扯到雙引號,要注意,如果在雙引號裡使用了變量,也會用其值替換,比如:

  1. ./test.sh "$HOME"  
  2. ./test.sh  
  3. /home/chenshu  
$HOME的值被用來作為第二個參數。

同樣,這裡用上單引號就不會取值。

$* 值得是從第1個參數開始的所有參數,如果沒有指定間隔字符,默認用空格。

比如下面的腳本:

  1. #!/bin/bash  
  2. echo "$*"  
這樣調用:
  1. ./test.sh 'this is a test' 'abc'  
結果顯示為:
  1. this is a test abc  
現在設置一下IFS:
  1. !/bin/bash  
  2. IFS=^  
  3. echo "$*"  
結果顯示為:
  1. this is a test^abc  

如果IFS設置為換行符,需要這樣寫:

  1. IFS=$'\n'  

使用$@基本上和$*一樣,除了IFS設置無效外。

有時候,想知道外部參數的數量,可以用$#
  1. #!/bin/bash  
  2. IFS=^  
  3. echo "$*"  
  4. echo "$#"  
運行腳本:
  1. ./test.sh 'this is a test' 'abc'  
輸出為2,不包含第0個參數。
Copyright © Linux教程網 All Rights Reserved