1. 程式人生 > >Shell引數傳遞

Shell引數傳遞

在執行shell指令碼執行時,可以向指令碼傳遞引數,指令碼內用$1 $2 $3...來獲取引數,$1代表傳遞的第一個引數,以此類推。

指令碼如下

#!/bin/bash

echo "執行的檔名:$0"
echo "傳遞到指令碼引數的個數: $#"
echo "當前指令碼執行的ID號:$$"
echo "後臺執行的最後一個程序的ID號:$!"
echo "第一個引數為:$1"
echo "第二個引數為:$2"
echo "第三個引數為:$3"
echo "以單個字元顯示所有傳遞的引數:$*"
echo "顯示所有引數:[email protected]"
echo "顯示上個命令的退出狀態:$?"

執行結果如下

[root@localhost tmp]# sh test.sh 1 2 3
執行的檔名:test.sh
傳遞到指令碼引數的個數: 3
當前指令碼執行的ID號:2054
後臺執行的最後一個程序的ID號:
第一個引數為:1
第二個引數為:2
第三個引數為:3
以單個字元顯示所有傳遞的引數:1 2 3
顯示所有引數:1 2 3
顯示上個命令的退出狀態:0
引數 含義
$# 傳遞到指令碼的引數個數
$* 以一個單字串顯示所有向指令碼傳遞的引數。
$$ 指令碼執行的當前程序ID號
$! 後臺執行的最後一個程序的ID號
[email protected] 與$*相同,但是使用時加引號,並在引號中返回每個引數。
$? 顯示最後命令的退出狀態。0表示沒有錯誤,其他任何值表明有錯誤。

$*和[email protected]的區別

相同點:都是引用所有引數
不同點:

$* = "1 2 3"  [email protected] = "1" "2" "3"

相關推薦

關於 Shell 引數傳遞 與 預設值

簡介 除了基本的獲取指令碼執行時的傳入引數外, 還有更便捷的語法糖: 引數預設值, 自動賦值. 基本傳參 先來一個示例: #!/bin/sh echo 引數0: $0; echo 引數1: $1; echo 引數2: $2; echo 引數3: $3; echo 引數4: $4; 執行測試

Linux/Unix shell 引數傳遞到SQL指令碼

在資料庫運維的過程中,Shell 指令碼在很大程度上為運維提供了極大的便利性。而shell 指令碼引數作為變數傳遞給SQL以及SQL指令碼也是DBA經常碰到的情形之一。本文主要討論瞭如何將shell指令碼的引數傳遞到SQL指令碼之中並執行SQL查詢。   有關shell與

Shell引數傳遞

在執行shell指令碼執行時,可以向指令碼傳遞引數,指令碼內用$1 $2 $3...來獲取引數,$1代表傳遞的第一個引數,以此類推。 指令碼如下 #!/bin/bash echo "執行的檔名

shell程式設計-引數傳遞

一、傳參介紹 (1)C語言中可以通過main函式的argc和argv給程式傳參 (2)shell程式本身也可以在呼叫時傳參給他。在shell程式內部使用傳參也是使用的一些特定符號來表示的,包括: $#表示呼叫該shell時傳參的個數。($#計數時只考慮真正的引數個數) $0、$1、$

jmeter 傳送加密請求 beanshell斷言 執行緒組間傳遞引數 jmeter bean shell斷言加密的響應資訊(加密介面測試二) jmeter 執行緒組之間的引數傳遞(加密介面測試三)

    原文地址https://www.cnblogs.com/wnfindbug/p/5817038.html 最近在做http加密介面,請求頭的uid引數及body的請求json引數都經過加密再發送請求,加密方式為:ase256。所以,jmeter傳送請求前也需要對uid及jso

Jmeter之Bean shell使用(三)——執行緒組之間的引數傳遞

場景測試中,一次登入後做多個介面的操作,然後登入後的uid需要關聯傳遞給其他介面傳送請求的時候使用。 1、在登入介面響應資訊中提取uid欄位值   1>login請求 -->新增 -->後置處理器--> bean shell postprocessor   2>

[awk]awk 與 shell引數傳遞(雙向)

1) 從bash傳遞匹配引數給awk: printf "Enter search pattern: " read pattern awk "/$pattern/ "'{ nmatches++ }      END { print nmatches, "fou

Shell指令碼通過引數傳遞呼叫指定函式

我們在寫一些功能性指令碼的時候,往往會把操作相似或者引數類似行為接近的函式放在同一個shell指令碼中,這樣管理方便,維護簡單,也很清晰。對於這種情況,通常的辦法是,在shell指令碼中定義所有用到的函式,然後在正文程式碼中用case語句讀入輸入的命令函式引數來呼叫指定的相

linux -- shell指令碼呼叫其他指令碼,向shell指令碼傳遞引數

Shell 指令碼也可以看做是一個一個的函式,將命令進行了封裝。 看看自己的例子: outTop.sh 是最頂層的。【負責呼叫其他的shell 指令碼】out1.sh 是第2層。【被outTop.sh呼叫】outInsert是第2層。【被outTop.sh呼叫】檔案 out

shell指令碼引數傳遞和main函式引數傳遞方式類似

shell指令碼 test.sh呼叫的時候傳入引數,param1,param2: #test.sh param1 param2 那麼在指令碼內部相當於把 test.sh param1 param2 看成三個引數出入,所以引數0為$0 (test.sh),引數1為$1 (pa

shell函式傳遞帶空格的引數

shell中的引數以空格為分割符,經常會碰到需要傳遞帶空格的引數,例如傳遞帶空格的檔名。 方法很簡單:給引數加雙引號。 但是實際效果要看你的函式內容,一種可能的情況是: 其實你真的傳遞進去了帶空格的引數,但是在函式體內忽略了繼續對該變數加引號,導致出現很惱人的錯誤。 舉個

nodejs 引數傳遞

1、html頁面 <!DOCTYPE html> <html lang="zh-CN"> <head> <meta name="viewport" content="width=device-width, initial-scal

form表單Get方式提交時,action中帶引數傳遞不了

form表單get方式提交時,action中帶引數傳遞不了 樣例: <form action="getPostServlet/getPost.do?param4=param4" method="get"> <input type="hidden" name="p

javaSE引數傳遞問題、返回值問題、內部類總結

 思維導圖  引數值傳遞問題 之前我們見到方法傳參一般傳遞的都是基本資料型別的引數,比如我要一個int型別,只需要在呼叫方法的時候傳一個int型別的數值就好了。但是當傳入引數需要一個引用資料型別,那麼該如何考慮呢? 類名作為傳入引數 class Studen

VS2013 MFC寫dll 多介面 引數傳遞 小雜記

目錄 1. char[] 轉變 cstring     2. 輸出字串到txt、MessageBox、T2A、_splitpath_s 3. CStringArray的使用、開啟對話方塊將選中的檔名讀出來,允許選擇多個檔案,注意檔名快取 4. 全域性

C#呼叫C++編寫的DLL函式引數傳遞

                        &nb

React Native之函式作為引數傳遞給另外一個函式去呼叫

1 用法 我們一般喜歡把js裡面的函式作為引數傳遞給另外一個函式,然後再呼叫這個函式,有點像C語言裡面的函式指標         2 程式碼測試 寫了一個函式,2個引數分別是函式,然後更具資料決定呼叫哪個函式 /** *

SpringMVC之引數傳遞

1. 通過設定HttpServletRequest request 來獲取資料 jsp頁面: <form action="user/add1.do" method="post"> 賬號:<input type="text" name="userNumber" /

Python 函式的引數傳遞

本文轉載自:https://www.cnblogs.com/lustar/p/8393922.html C/C++中,傳遞引數的型別是可以指定的。一般來說,傳遞引數可以分為兩種:值傳遞和引用傳遞。對於值傳遞,引數傳遞的過程中進行了複製操作,也就是說,在函式中對引數的任何改動都不會影響到傳入的變數

MyBatis學習——第二篇(引數傳遞

1:引數傳遞 在使用mybatis的過程中,除了上篇的簡單案例,我們面對的實際業務情況要複雜很多,在mapper檔案中會有各種各樣的業務場景 對於傳遞的傳遞的引數,和返回值都有這各種各樣的需求,本篇就傳遞引數做一個詳細講解 2:案例程式碼 通過實際案例,對不同的傳遞引數做詳細的案例分