1. 程式人生 > >shell 函式引數為陣列傳遞

shell 函式引數為陣列傳遞

You cannot pass an array, you can only pass its elements (i.e. the expanded array).

#! /bin/bashfunction f(){
    a=("[email protected]")((last_idx=${#a[@]}-1))
    b=${a[last_idx]}
    unset a[last_idx]for i in"${a[@]}";do
        echo "$i"done
    echo "b: $b"}

x=("one two""LAST")
b='even more'
f "${x[@]}""$b" echo =============== f "${x[*]}""$b"

The other possibility would be to pass the array by name:

#! /bin/bashfunction f(){
    name=$1[@]
    b=$2
    a=("${!name}")for i in"${a[@]}";do
        echo "$i"done
    echo "b: $b"}

x=("one two""LAST")
b='even more'

f x "$b"

http://stackoverflow.com/questions/16461656/bash-how-to-pass-array-as-an-argument-to-a-function

相關推薦

shell 函式引數陣列傳遞

You cannot pass an array, you can only pass its elements (i.e. the expanded array). #! /bin/bashfunction f(){ a=("[email protected]")((last_idx=

函式引數傳遞、引用傳遞和指標傳遞的區別:

1)值傳遞:int func(int value) { value++; return value; // 一般需要返回值 } int a=2; int b=func(a); //b==3;a==2;按值

函式引數引數陣列

  如果函式的形參是字元常量,可以加上const char a="1111"‘’ 告訴使用者是資料常量        如果將一個字串的空格給去掉,通過將指標的的地址賦值給另外的指標,進行移位,如 #include <stdio.h> void d

java 11:陣列作為函式引數陣列函式返回值

1 陣列作為引數 我們可以將陣列作為引數,傳入到函式中,其實就像我們main函式中 public void main(String [] args){};就是用陣列作為函式引數; 又如, publicclass ArrayPar  {  publicstaticvoid

AngularJS $http模組POST請求,傳遞引數陣列或者物件時

$http({ method:'post', url:'post.php', data:{name:"aaa",id:1,age:20} }).success(function(req){ console.log(req); })   解

JS判斷一個是否函式或者陣列(資料型別的判斷)

如下程式碼所示: 有幾個細節要注意 1)typeof(arr) === ‘object’ 使用typeof陣列,得到的是一個object,而不 是返回Array或者array 2)console.info(1 instanceof Number) //fal

const常引用(const + &)避免函式引數的雙向傳遞

在c++可以使用引用傳遞作為函式的形參傳入函式,相較於值傳遞的方式,引用傳遞能夠節省函式使用時的記憶體分配,不需要像值傳遞一樣拷貝實參。對於普通的資料型別可能看出引用的優勢,但是如果函式的傳入引數是一個十分複雜的結構體或者類,那麼引用傳遞可以節省很大的記憶體開銷

mysql儲存過程引數陣列或者物件的處理方式

問題場景:做一個物品系統, 需要批量存入。 思考:儲存過程的的引數不支援陣列,是否可以用json字串代替 測試用的JSON字串: let obj = { itemlist:[ { regid:0, iteminfo:

vue使用axios的post提交方式,引數陣列

做專案時,axios提交post請求 ,控制檯報錯,看圖 意思大概就是我們url不能解析,沒有序列化吧也就是,當然不能傳送成功。這是我寫的url Axios.post('/api/order/create?token=' + token + '&goodsJson

URL中引數陣列

今天寫程式碼時候碰到了一個需要在URL中傳遞陣列型別的引數,記錄一下。 var urlstr = "http://test"; var test = new Array(); for (i=0;i<1500;i++){ test.push(i); } window.open(u

C#呼叫非託管函式引數Void* 時,方法

This sample demonstrates how to pass data to an unmanaged function that expects a void pointer as an argument. The sample provides two solutions. The Voi

ctypes 載入的so庫中函式引數的字串傳遞問題(str與bytes轉換)

在專案開發過程中,需要python使用ctypes 載入編譯好的so庫,然後呼叫so庫的函式,python傳入str引數,但是按通常python傳入字串引數的方法(func(“test”))時,so庫中的函式不能接收到全部的字串,而是隻能接受第一個字元,這樣顯然不能達到呼叫

js 函式引數按值傳遞的理解

例子選自《javas高階程式設計》1.基本型別按值傳遞function addTen(num) { num += 10; return num; } var count = 20; var result = addTen(count); alert(count); //20,

結構體作為函式引數(值傳遞,引用傳遞,指標傳遞

一、值傳遞 #include <iostream> #include <string> using namespace std; struct Student {     int id;     string name;     float sco

AFN做post請求,引數陣列的坑

公司後端哥們給了介面文件, 於是就興致勃勃的開發, 結果有一個介面死活返回不了資料, 檢查了上傳引數, 裡面有個引數需要一個列表, 也就是我們oc中的陣列, 陣列中全是整型資料, 打印出所有的上傳引數之後發現也沒啥問題, 於是就找後端的哥們, 後端那哥

C++學習筆記(三)--函式引數陣列函式,指標和const,二維陣列函式,遞迴,函式指標

C++ Primer Plus學習筆記之三 每一塊寫了一個詳細闡釋的demo,具體使用方法以及注意事項在程式碼裡都有備註 第七章函式--C++的模組程式設計,總計分為以下幾塊-- 函式引數

請求引數陣列,如何傳參?

引言: 在工作中,有時後會遇見post請求的引數為陣列的情況,這種情況應該如何解決呢? 如下圖: 想法一: 直接把陣列放入變數池中,查閱API文件中發現如下方法: 其中主要的方法: putObject(String key,Object value),可以任

為什麼拷貝建構函式必須引用傳遞,不能是值傳遞

對於拷貝建構函式引用傳遞,似乎司空見慣,認為理所當然。但是被問起這個問題,的確是一片茫然,為什麼呢?去網上搜索了一下,的確有很多這方面的知識講解。我們先看一下CSDN上的一個帖子的回答:簡單的回答是為了防止遞迴引用。具體一些可以這麼講: 當 一個物件需要以值方式傳遞時,編譯器會生成程式碼呼叫它的拷貝建構函式以

Lua的函式引數table時奇特現象

前言 今天在工作中使用lua編寫程式碼時發生了一個有趣的現象,特此記錄一下。 問題再現 當lua的函式為table時會發生什麼情況,話不多說直接上程式碼: local tb = {1, 2, 3} function testObject(tab,

JS函式引數物件時,如何呼叫

當JS函式的引數為物件時,呼叫時不能直接傳物件,而是要將物件使用者JSON轉換之後才能用,如下 特別要注意這個return "<button class='btn btn-primary btn-sm'' onclick='toEdit(" + JSON.stri