bash:如何給function傳引數
給shell裡的函式(function)傳遞引數有2種方式:
第一種方式:
在function裡直接通過$1,$2,etc.來獲取引數:
例:
建立一個檔案“file.txt”在shell裡建立一個函式並呼叫:
file.txt:
funcTest.sh:
該shell的執行結果:
從上面的結果可以看出通過這種傳遞方式grep結果裡的換行已經被無視了,本來應該是3行*3個引數,直接被當做9個引數了。
另外,$0在這裡指的是shell指令碼名。
第二種方式:
使用awk:
例:
執行結果:
可以看到,awk可以分3次進行處理,相當於呼叫了3遍myfunc2.
此外還有一點,$0在這裡指的是本次呼叫的所有引數。
注意點:
第一種方式不支援管道傳參,使用“grep china file.txt|myfunc”將得不到你想要的結果。
相反第二種方式(awk方式)只支援管道傳參,而不支援“myfunc2 `grep china file.txt`”的呼叫方式。
--------------------------------------------------------------------------------------------------------------------
提示:
Built-in Shell Variables:
$# : Number of command-line arguments.
$- : Options currently in effect (supplied on command line or to set). The shell sets some options automatically.
$? : Exit value of last executed command.
$$ : Process number of the shell.
$! : Process number of last background command.
$0 : First word; that is, the command name. This will have the full
pathname if it was found via a PATH search.
$n : Individual arguments on command line (positional parameters).
The Bourne shell allows only nine parameters to be referenced
directly (n = 1–9); Bash allows n to be greater than 9
if specified as ${n}.
$*, [email protected] : All arguments on command line ($1 $2 …).
"$*" : All arguments on command line as one string ("$1 $2…"). The
values are separated by the first character in $IFS.
"[email protected]" : All arguments on command line, individually quoted ("$1" "$2" …).
$_ : Temporary variable; initialized to pathname
of script or program being executed.
Later, stores the last argument of previous
command. Also stores name of matching
MAIL file during mail checks.
相關推薦
bash:如何給function傳引數
給shell裡的函式(function)傳遞引數有2種方式: 第一種方式: 在function裡直接通過$1,$2,etc.來獲取引數: 例: 建立一個檔案“file.txt”在shell裡建立一個函式並呼叫: file.txt: chen china engineer
Flask框架——給檢視傳引數
如何實現資料互動(通過瀏覽器給介面傳入引數) 要想傳入引數,可以通過一個語法,這個語法就是<>(尖括號) from flask import Flask app = Flask(__name__) # 傳入引數:通過url地址給檢視函式傳遞引數 # 使用語法:&
POST方法給@RequestBody傳引數失敗原因分析
通過ajax給springMVC傳遞引數時,通過post方法傳遞json字串時常用的方式,這時後端應該通過@RequestBody註解配合springMVC中配置的訊息轉換器來進行json字串的解析。 因為post方法中的json字串通常是一個前端的json物件轉化而成的字串,所以後端@Requ
坑:微信小程式wx.request和wx.uploadFile中傳引數的區別
微信小程式中通過元件<form>提交表單的時候,在js中通過e.detail.value得到所提交表單的json格式資料。一般提交表單我們都是通過wx.request請求,提交表單資料,通過引數data傳資料, wx.request({ url: 'test.php', //僅為示例,
java調Python指令碼(三):傳引數問題
java調Python的指令碼,我們需要將java這邊的引數傳到Python那邊使用,所以就需要傳參。 Python需要匯入系統包 import sys,然後使用 sys.argv[i] 接收java傳過來的引數就可以。 1、Python程式碼:
Angular6學習筆記17:在路由中傳引數和接收引數
傳引數 1.在需要傳引數的元件的類檔案(ts檔案)中,構造方法中,宣告物件: constructor(private route: Router) { } 2.在路由中設定引數(有三種方式) routerLink屬性 a.對於單一引數 <a [router
013:URL傳引數
URL傳引數有兩種方式: 1、採用在URL中使用變數的方式:在path的第一個引數中,使用'<引數名>'的方式可以傳遞引數,然後在對於的檢視函式中也要寫一個引數,並且檢視函式中的引數名和URL中的引數名稱必須保持一致,否則沒法找到這個引數;另外,在URL中可以傳遞多個引數,下面是
ajax非同步傳引數給後臺
通過使用ajax技術,將客戶端資料傳遞給服務端,服務端處理後返回資料給客戶端進一步處理,客戶端瀏覽器不必重新整理整個頁面,只需要重新整理部分內容。function ajaxFun(){ //js函式 $.ajax({url : '../servlet/priceSer
C# 委託的應用1:將方法作為引數傳遞給另一個方法
長期以來,c和c++的程式設計師利用方法指標,將方法作為引數傳給另一個方法。c#使用委託來提供相同的功能,它將方法作為物件封裝起來,允許在執行時間接地繫結一個方法呼叫。 下面將通過氣泡排序的例子講解委託的產生 示例1 :該方法對一個整數陣列執行升
AirFlow 如何傳引數給DAG
題外話(可以直接跳過進入正題): 最近需要使用airflow去排程任務,平常使用airflow都是排程的定時任務,這次不需要定時任務,只需要條件滿足時主動觸發airflow執行任務排程即可,同時將任務必要的外界引數傳給DAG。查了好多資料發現都沒有介紹如何將引數傳給
[makefile] 命令列給make直譯器傳引數
例如: build: [tab] mvn clean package 原本是這樣既可以跑 UT又可以打不jar 包來,但後來UT總是不過。怎麼避免對檔案的修改呢? 本著這樣目的,修改如下: 1 maven.test.skip = false 2 build: 3
給oracle 的SQL指令碼傳引數
SQL指令碼內容: conn &1/&2selectcount(*) from user_tables; exit 呼叫: SQL> exit從Oracle9i Enterprise Edition Release 9.2.0.1.0 - P
java看看我是怎麼利用陣列給Runnable執行緒傳引數的1
我的文章只給有耐心的人看,所以先寫程式碼 import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.Sem
C++函式傳參:引用和const引數
一 在函式傳參中使用引用 1.使用例子: #include<iostream> using namespace std; void reset(int &i){//引用傳參
C++11嚐鮮:Variadic Function Templates(帶變長引數的函式模板)(續)
程式碼1 #include <iostream> #include <string> #include <boost/ref.hpp> #include <b
Jython:Java如何傳值給Python
想在Java工程中呼叫Python指令碼,最關鍵的是python指令碼需要使用Java實時傳遞過來的變數。因此麻煩了,到處找教程。中文教程為零,還好有Stack Over Flow,輸入關鍵字:jython java passing variable topython,果真
getopt/getopts:Bash中命令列選項/引數處理
本文轉載自: http://www.cnblogs.com/FrankTan/archive/2010/03/01/1634516.html -- 0.引言 寫程式的時候經常要處理命令列引數,本文描述在Bash下的命令列處理方式。 選項與引數: 如下
給python檔案傳引數
python檔案內部接收引數用:sys.argv sys.argv[0]:是python指令碼名 sys.arg[1]及以後各項:是接收的引數 看下面的例子: (para.py) #! /bin/
如何給awk傳外部引數
在awk中,傳參的方式主要有如下兩種: 1.用-v傳參 [xxx@xxx expensive_user]$ A=3 [xxx@xxx expensive_user]$ B=4 [xxx@xxx
九:給請求加斷言
enc .org ref assertion cnblogs sample display lin manual 參考:http://jmeter.apache.org/usermanual/component_reference.html#assertions 背景 在測