Shell如何傳遞字串

2021-09-07 23:15:05 字數 2169 閱讀 7351

shell 在寫函式的時候,有時候需要傳遞字串,由於字串中有空格,所以結果總是不對,下面寫個小例子,解決這個問題:

#!/bin/bash

# value init

tt="adb shell ls -l /data/local/tmp/";

final="";

loop_count=2;

# loopex: excute a programm in a loop, $1 is program,$2 is loop count,

function loopex()

loopex $tt $loop_count

這個輸出的結果是:

programm is adb, loop_count ==shell

seq: invalid floating point argument: shell

因為傳遞的字串中有空格,解決這個問題如下,在呼叫函式傳遞引數的時候使用:

loopex "$tt" $loop_count 

得到正確的顯示結果如下:

programm is adb shell ls -l /data/local/tmp/, loop_count ==2

drwxrwxrwx root root 2010-01-01 23:10 cplusplus

-rw-rw-rw- root root 2 2014-08-07 01:54 ppamonitorport.pt

-rwxrwxrwx root root 153916 2014-04-17 08:33 libgles_mali1.so

-rwxrwxrwx root root 10304 2014-04-17 08:42 libglesv2agent.so

-rwxrwxrwx root root 890744 2014-04-17 08:33 libppa.so

-rwxrwxrwx root root 259484 2014-04-17 08:34 librsagent.so

-rwxrwxrwx root root 471328 2014-04-17 08:33 libtunnel.so

drwxrwxr-x root root 2010-01-01 00:11 vp9input

-rw-rw-rw- root root 24285 2014-08-07 02:30 vp9_inter_pred_4x4.cl

-rw-rw-rw- root root 40239 2010-01-01 23:56 vp9kernel.bin

-rwxrwxrwx root root 510012 2014-08-07 02:31 vpxdec

-rwxrwxrwx root root 509056 2014-07-18 07:59 vpxdec-cpu

drwxrwxrwx root root 2010-01-01 23:10 cplusplus

-rw-rw-rw- root root 2 2014-08-07 01:54 ppamonitorport.pt

-rwxrwxrwx root root 153916 2014-04-17 08:33 libgles_mali1.so

-rwxrwxrwx root root 10304 2014-04-17 08:42 libglesv2agent.so

-rwxrwxrwx root root 890744 2014-04-17 08:33 libppa.so

-rwxrwxrwx root root 259484 2014-04-17 08:34 librsagent.so

-rwxrwxrwx root root 471328 2014-04-17 08:33 libtunnel.so

drwxrwxr-x root root 2010-01-01 00:11 vp9input

-rw-rw-rw- root root 24285 2014-08-07 02:30 vp9_inter_pred_4x4.cl

-rw-rw-rw- root root 40239 2010-01-01 23:56 vp9kernel.bin

-rwxrwxrwx root root 510012 2014-08-07 02:31 vpxdec

-rwxrwxrwx root root 509056 2014-07-18 07:59 vpxdec-cpu

shell 變數,字串,陣列,注釋,引數傳遞

linux的shell有很多種,常見的有bourne shellbourne again shellc shellk shellshell for root 等,其中bourne again shell,由於易用和免費,bash在日常工作中被廣泛使用,本系列文章就是基於b shell進行 的 之前所...

SendMessage 傳遞字串

sendmessage函式的原型為 lresultsendmessage hwndhwnd,uintmsg,wparamwparam,lparamlparam 用於訊息傳遞,其中有wparam 和 lparam 兩個附加引數,可以傳遞一些附加資訊,由於它們是long 型的,所以只能 傳遞數字,如果想...

C C 字串傳遞

可以說新手使用p invoke最開始的頭疼就是c 和c 的字串傳遞,因為這裡涉及到兩個問題。第一 c 的string和c 的字串首指標如何對應。第二 字串還有ansi和unicode 寬字串 之分。第一 字串指標當輸入引數,第二 字串指標作為返回值,第三 字串指標作為輸入輸出引數。c 部分的測試 很...