歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> bash 腳本編程四 外部參數 IFS

bash 腳本編程四 外部參數 IFS

日期:2017/3/1 10:09:37   编辑:Linux編程

通過$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