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()
{
Ex=$1;
local loop_count=$2;
echo "Programm is $Ex, loop_count ==$loop_count"
for i in $(seq $loop_count); do
$Ex;
done;
} 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如何传递字符串的更多相关文章

  1. 一篇详细的linux中shell语言的字符串处理

    1 cut是以每一行为一个处理对象的,这种机制和sed是一样的.(关于sed的入门文章将在近期发布) 2 cut一般以什么为依据呢? 也就是说,我怎么告诉cut我想定位到的剪切内容呢? cut命令主要 ...

  2. 【问题】Asp.net MVC 的cshtml页面中调用JS方法传递字符串变量参数

    [问题]Asp.net MVC 的cshtml页面中调用JS方法传递字符串变量参数. [解决]直接对变量加引号,如: <button onclick="deleteProduct('@ ...

  3. 在Shell里面判断字符串是否为空

     在Shell里面判断字符串是否为空 分类: Linux shell2011-12-28 23:18 15371人阅读 评论(0) 收藏 举报 shell 主要有以下几种方法: echo “$str” ...

  4. JS 拼装代码的HTML onClick方法传递字符串

    有时会在JS中拼装HTML代码,这时在HTML中出现的onClick()方法中: 1.出现传递Num型的数据,直接拼装进去即可: 2.可能会出现传递字符串的情况,处理方法比较特殊,如下: a:直接字符 ...

  5. shell中截取字符串的方法总结

    shell中截取字符串的方法有很多种, ${expression}一共有9种使用方法. ${parameter:-word} ${parameter:=word} ${parameter:?word} ...

  6. shell脚本中字符串的常见操作及"command not found"报错处理(附源码)

    简介 昨天在通过shell脚本实现一个功能的时候,由于对shell处理字符串的方法有些不熟悉导致花了不少时间也犯了很多错误,因此将昨日的一些错误记录下来,避免以后再犯. 字符串的定义与赋值 # 定义S ...

  7. Shell脚本中字符串判空:使用-z 字符串长度为0时,为真,-n字符串长度不为0,为真。这两个都不靠谱【转】

    最近发现使用  -z   和  -n  来判断字符串判空,或不空时,很不靠谱. 使用下面的方法最可靠: if [ "x${value}" == "x" ]    ...

  8. shell如何传递变量到另一个脚本文件中

    http://www.jbxue.com/article/shell/20707.html本文介绍了shell脚本传递变量到另一个脚本文件中的方法,在脚本中调用另一脚本,即创建了一个子进程,感兴趣的朋 ...

  9. 如何在存储过程的IN操作中传递字符串变量

    原始SQL如下: SELECT MONTH(OrderTime) AS datetype, SUM(DeliveryCount) AS decount, Region FROM (SELECT dbo ...

随机推荐

  1. java.util.Map源码分析

    /** * An object that maps keys to values. A map cannot contain duplicate keys; * each key can map to ...

  2. linux下shell编程示例-获取进程id

    今天初步学习了一下linux下的shell编程,简单记录一下测试用例 1.编辑shell脚本文件如下: #!/bin/bashecho "hello bash linux"echo ...

  3. 深入了解absolute

    1.absolute与float的相同的特性表现  a.包裹性  b.破坏性:父元素没有设置高或宽,父元素的高或宽取决于这个元素的内容  c.不能同时存在 2.absolute独立使用,不与relat ...

  4. php练习6——面向对象编程(打印乘法表)

    要求:编写一个成员函数,从键盘输入一个数(0—9),打印出对应的乘法表 程序:viewChengFB.html chengFB.class.php printChengFB.php   结果  

  5. web系列教程之php 与mysql 动态网站 。检索 与更新。

    接着上次WEb 系列开发之php 与mysql动态网站入门. 个人觉得,学习技术就像一棵大树,主干很重要,枝叶其次.对于学习技术,我们应该分清主次关系.怎么学?为什么要学?有一个较好的分寸. 有时候觉 ...

  6. PHP源码阅读笔记一(explode和implode函数分析)

    PHP源码阅读笔记一一.explode和implode函数array explode ( string separator, string string [, int limit] )此函数返回由字符 ...

  7. C++版 Chip8游戏模拟器

    很早就想写个FC模拟器,但真是一件艰难的事情.. 所以先写个Chip8模拟器,日后再继续研究FC模拟器. Chip8只有35条指令,属于RISC指令集,4k内存,2k显存,16个寄存器(其中15个通用 ...

  8. asp.net core 认证及简单集群

    众所周知,在Asp.net WebAPI中,认证是通过AuthenticationFilter过滤器实现的,我们通常的做法是自定义AuthenticationFilter,实现认证逻辑,认证通过,继续 ...

  9. 浅谈JavaScript的push()函数

    push() 方法可向数组的末尾添加一个或多个元素,并返回新的长度.返回值是把指定的值添加到数组后的新长度. 语法:arrayObject.push(newelement1,newelement2,. ...

  10. 将UIImage保存到iOS照片库和对应程序沙盒中-b

    1.保存到iOS照片库需要引入QuartzCore.framework框架,具体代码如下:.h文件#import <QuartzCore/QuartzCore.h>UIImageView ...