1. 程式人生 > >shell中$*與[email protected]的區別

shell中$*與[email protected]的區別

關於$* 和 [email protected]的 一點 認識 同是菜鳥一起學習

$*
所有的位置引數,被作為一個單詞.
注意:"$*"必須被""引用.
[email protected]
與$*同義,但是每個引數都是一個獨立的""引用字串,這就意味著引數被完整地傳遞,
並沒有被解釋和擴充套件.這也意味著,每個引數列表中的每個引數都被當成一個獨立的
單詞.
注意:"[email protected]"必須被引用.

[email protected] $* 只在被雙引號包起來的時候才會有差異
雙引號括起來的情況:
$*將所有的引數認為是一個欄位
[email protected]

以IFS(預設為空格)來劃分欄位,如果空格在“”裡面,不劃分。採用LS的指令碼執行./test 1 "2 3" 4   來發現差異

沒有括起來的情況是[email protected]和$*一樣的,見到IFS就劃分欄位。還是採用LS的指令碼執行./test 1 "2 3" 4   來發現差異

一個小例子 ,僅供參考

[Copy to clipboard] [ - ]CODE:#!/bin/bash
echo

index=1

echo "Listing args with\"\$*\":"
for arg in "$*"

do
   echo "Arg #$index=$arg"
   let "index+=1"

done

echo "所有的引數被認為是一個單詞"

echo

index=1

echo "Listing args with \"\
[email protected]
\":"
for arg in "[email protected]"
do
echo "Arg #$index=$arg"
let "index+=1"
done

echo "所有的引數被認為是各個獨立的單詞"

echo

index=1

echo "Listing args with \$* (未被引用):"
for arg in $*
do
echo "Arg #$index=$arg"
let "index+=1"
done
echo "所有的引數被認為是各個獨立的單詞"

exit 0
執行後輸出為

[Copy to clipboard] [ - ]
CODE:[[email protected] ABS]# ./test 1 2 3 4

Listing args with"$*":
Arg #1=1 2 3 4
所有的引數被認為是一個單詞

Listing args with "[email protected]":
Arg #1=1
Arg #2=2
Arg #3=3
Arg #4=4
所有的引數被認為是各個獨立的單詞

Listing args with $* (未被引用):
Arg #1=1
Arg #2=2
Arg #3=3
Arg #4=4
所有的引數被認為是各個獨立的單詞
[ 本帖最後由 一路征程一路笑 於 2008-7-20 09:52 編輯 ]

相關推薦

shell$*<a href="/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="5b7f1b">[email&#160;protected]a>的區別

關於$* 和 [email protected]的 一點 認識 同是菜鳥一起學習 $* 所有的位置引數,被作為一個單詞. 注意:"$*"必須被""引用. [email protected] 與$*同義,但是每個引數都是一個獨立的""引用字串,這就意味著引數被完整地傳遞, 並沒有被解釋和擴

shell$*<a href="/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="b296f2">[email&#160;protected]a>的區別

劃分 位置 一個 這也 差異 獨立 [email protected] 情況 雙引號 $*所有的位置參數,被作為一個單詞 註意:"$*"必須被""引用 [email protected] 與$*同義,但是每個參數都是一個獨立的""引用字串,這就意味著參數

shell腳本的$# $0 <a href="/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="f8dcb8">[email&#160;protected]a> $* $$ $! $?的意義

腳本 $* width 上一個 pre shell int .cn height 轉載自:http://www.cnblogs.com/davygeek/p/5670212.html 今天學寫腳本遇到一些變量不認識,在此做下記錄。 變量 含義 $0 當前腳本的文件

<a href="/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="297a595b40474e69685c5d465e405b4c4d">[email&#160;protected]a>註解自動裝配(轉發)

配置 調用方法 support autowired 信息 ann over 反射機制 test 1 配置文件的方法我們編寫spring 框架的代碼時候。一直遵循是這樣一個規則:所有在spring中註入的bean 都建議定義成私有的域變量。並且要配套寫上 get 和 se

linux bash Shell特殊變數:Shell $0, $#, $*, <a href="/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="8aaeca">[email&#160;protected]a>, $?

在linux下配置shell引數說明 前面已經講到,變數名只能包含數字、字母和下劃線,因為某些包含其他字元的變數有特殊含義,這樣的變數被稱為特殊變數。  例如,$ 表示當前Shell程序的ID,即pid,看下面的程式碼: [[email protected] /]$ ec

[ 轉]Shell引數($0,$1,$#,$NF,<a href="/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="4b6f0b">[email&#160;protected]a>等)的含義

Shell中引數($0,$1,$#,$NF,[email protected]等)的含義         釋出時間:2018-01-19 來源:網路 上傳者:使用者  &nbs

Css3動畫<a href="/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="3518755e504c534754585046">[email&#160;protected]a>animation

一、@keyframe 目前瀏覽器都不支援 @keyframes 規則。   Firefox 支援替代的 @-moz-keyframes 規則。   Opera 支援替代的 @-o-keyframes 規則。   S

<a href="/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="e39093918a8d84cea3b1869296869097ae8293938a8d84">[email&#160;protected]a>RE

@RequestMapping 是 Spring Web 應用程式中最常被用到的註解之一。這個註解會將 HTTP 請求對映到 MVC 和 REST 控制器的處理方法上。  在這篇文章中,你將會看到 @RequestMapping 註解在被用來進行 Spring MVC 控制器方法的對映可以

Shell】linux bash Shell特殊變數:Shell $0, $#, $*, <a href="/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="4f6b0f">[email&#160;protected]<

在linux下配置shell引數說明 前面已經講到,變數名只能包含數字、字母和下劃線,因為某些包含其他字元的變數有特殊含義,這樣的變數被稱為特殊變數。  例如,$ 表示當前Shell程序的ID,即pid,看下面的程式碼: $echo $$ 執行結果 29949

<a href="/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="624622">[email&#160;protected]a> $*區別

一、編寫shell指令碼檔案 在shell中,[email protected]和$*都表示命令列所有引數(不包含$0),但是$*將命令列的所有引數看成一個整體,而[email protected]則區分各個引數 eg: for i in 

【<a href="/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="ee8787868b9c81aeadbdaaa0">[email&#160;protected]a>】專注於資料庫資訊檢索技術

###[email protected]### ① 本部落格中文章,除轉載外,均為作者本人原創。請轉載時,尊重個人勞動,註明原始出處 ② 內容主要涉及資料庫相關理論技術、雲端計算及軟體架構專案管理 同時我也是Sybase, SQLAnywhereStudio, PostgreSQ

<a href="/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="663516140f08012627131209110f140302">[email&#160;protected]a>註解自動裝配

1   配置檔案的方法 我們編寫spring 框架的程式碼時候。一直遵循是這樣一個規則:所有在spring中注入的bean 都建議定義成私有的域變數。並且要配套寫上 get 和 set方法。 Boss 擁有 Office 和 Car

@演算法 - <a href="/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="546014">[email&#160;protected]a> 多項式的多點求值快速插值

目錄 @0 - 參考資料@ @1 - 多點求值@ @理論推導@ @參考程式碼@ @例題與應用@ @2 - 快速插值@ @理論推導@ @(不建議參考的)程式碼@ @例題與應用@(暫無) @0 - 參考資料@ Cy

@演算法 - <a href="/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="c8fd88">[email&#160;protected]a> 牛頓迭代法的應用——多項式開方,對數,指數,三角冪函式

目錄 @0 - 參考資料@ @0.5 - 多項式平方根@ @1 - 牛頓迭代法@ @數學上的定義@ @對於多項式的定義@ @2 - 牛頓迭代的應用@ @重新推導 - 多項式逆元@ @重新推導 - 多項式平方根@ @多項式對數函式@

淺談linuxshell變數$#,<a href="/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="674327">[email&#160;protected]a>,$0,$1,$2,$?的含義解釋

淺談linux中shell變數$#,[email protected],$0,$1,$2,$?的含義解釋 下面小編就為大家帶來一篇淺談linux中shell變數$#,[email protected],$0,$1,$2的含義解釋。小編覺得挺不錯的,現在就分享給大家,

Shell指令碼$0、$?、$!、$$、$*、$#、<a href="/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="cbef8b">[email&#160;protected]a>等的意義

變數說明 $$ Shell本身的PID(ProcessID) $! Shell最後執行的後臺Process的PID $? 最後執行的命令的結束程式碼(返回值) $- 使用Set命令設定的Flag一覽 $* 所有引數列表。如"$*"用「"」括起來的情況、以"$1 $2 …

shell 的$0 $1 $* <a href="/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="e5c1a5">[email&#160;protected]a> $# $$ $?

$0: 指令碼本身檔名稱 $1: 命令列第一個引數,$2為第二個,以此類推 $*: 所有引數列表 [email protected]: 所有引數列表 $#: 引數個數 $$: 指令碼執行時的PID $?: 指令碼退出碼 ∗與@的區別 當命令列為test.sh 1 2 3 "$*“表示"1

shell特殊變數$0,$#,<a href="/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="edc9ad">[email&#160;protected]a>,$*,$?,$$和命令列引數

變數   含義 $0     當前指令碼的檔名     $n     傳遞給指令碼或函式的引數。n 是一個數字,表示第幾個引數。例如,第一個引數是$1,第二個引數是$2。    $#     傳遞給指令碼或函式的引數個數。     $*     傳遞給指令碼或函式的所有引數

unixshell 非一般變數$0 $n $* <a href="/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="a581e5">[email&#160;protected]a> $! $?的詳解

$0:獲取當前執行指令碼的檔名,包括路徑。 [[email protected] script]# cat 0.sh #!/bin/bash echo $0 [[email protected] script]# sh 0.sh 0.sh [[email protected

<a href="/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="fdae8d8f94939abdbc8889928a948f9899">[email&#160;protected]a>註解省去get和set方法,

<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/