shell中的参数以空格为分割符,经常会碰到需要传递带空格的参数,例如传递带空格的文件名。

方法很简单:给参数加双引号。

但是实际效果要看你的函数内容,一种可能的情况是: 其实你真的传递进去了带空格的参数,但是在函数体内忽略了继续对该变量加引号,导致出现很恼人的错误。

举个例子,遍历文件的一部分

#!/bin/bash

dir="/home/my dir"

func()

{

for elment in $1/*; do

echo "$element"

}

func $dir

上面有两个错误,应该改成

#!/bin/bash

dir="/home"

func()

{

for elment in $1/*; do   ####(2)####for elment in "$1"/*; do   ########确保函数接受进来的参数一直作为一个整体存在!

echo "$element"

}

func $dir   ########(1)#####    func "$dir"   ###确保参数作为一个整体传递进了函数

################### (1)(2)两个错误都需要修改才行。

所以,双引号的作用在这里体现的淋漓尽致,平时我们可能嫌麻烦,对变量的引用不加双引号,这是一种不好的习惯。以后记着写shell时尽量把引用变量用双引号括起来。

shell函数传递带空格的参数的更多相关文章

  1. 在动态THML语句中调用JS函数传递带空格参数的问题

    刚刚遇到一个问题,调用js函数的参数里带空格,造成调用失败的问题.   部分代码如下: html+="<div><a href=javascript:confirm(&qu ...

  2. Javascript函数中传递带空格的参数

    通常在页面中要让某些内容点击后产 生点击事件(非页面跳转)都会使用onclick,但是这样不适于需要传递参数的情况,于是写成直接调用Javascript函数的方式:<a href=javascr ...

  3. Shell脚本传递带有空格的参数

    在另一博文<Shell脚本实现DB2数据库表导出到文件>中实现了通过脚本实现将DB2数据库导出到文件,需要传入七个参数,最后一个是一个带有空格字符串,所以传入的时候有点问题,会自动识别空格 ...

  4. Uncaught SyntaxError : Unexpected token ILLEGAL js传递带空格的参数

    通常在页面中要让某些内容点击后产生点击事件(非页面跳转)都会使用onclick,但是这样不适于需要传递参数的情况,于是写成直接调用JavaScript函数的方式:<a href=javascri ...

  5. Shell脚本传递带有空格的参数[摘录自网络]

    参数处理 说明 $# 传递到脚本的参数个数 $* 以一个单字符串显示所有向脚本传递的参数 $$ 脚本运行的当前进程ID号 $! 后台运行的最后一个进程的ID号 $@ 与$#相同,但是使用时加引号,并在 ...

  6. shell脚本传递带有空格的参数的解决方法

    如下例子所示: #!/bin/sh dt= rdms_presql='select * from dm_general_stat where dimcode = "day" and ...

  7. JAVA传递带有空格的参数

    String s="b2 + b1"; Process child = Runtime.getRuntime().exec("C:\\eclipse-workspace\ ...

  8. shell 函数传递参数的几种方式

    1.最近总结了 shell 中 function 的传递变量的几种方式 1.传递单个变量 2.传递数组变量   #!/bin/bash   #trying to pass an variable.   ...

  9. newlisp 接受jenkins带空格的参数

    jenkins有一个参数text种类,它能够以文本的段落拷贝作为参数 newlispThe program receives parameters are separated by spaces, 更 ...

随机推荐

  1. Repeater嵌套(灵活的)

    页面代码 <form id="form1" runat="server"> <asp:Repeater ID="rptCategor ...

  2. 分布式文件系统FastDFS集群部署

    1.源码开放下载地址:https://github.com/happyfish100 早期源码开放下载地址:https://sourceforge.net/projects/fastdfs/files ...

  3. windows 批处理删除指定目录下 指定类型 指定天数之前文件

    删除D:\test下5天前所有文件,如下: @echo offset SrcDir=D:\testset DaysAgo=5forfiles /p %SrcDir% /s /m *.* /d -%Da ...

  4. 用c#语言通过修改注册表改IE网页首页

    原文发布时间为:2009-04-19 -- 来源于本人的百度文章 [由搬家工具导入] string key = @"HKEY_CURRENT_USER\Software\Microsoft\ ...

  5. post sharp 与log4net 结合使用,含执行源码 转拷

    环境: VS 2012 PostSharp-4.1.28 (下载地址)https://visualstudiogallery.msdn.microsoft.com/a058d5d3-e654-43f8 ...

  6. [LeetCode] Sum Root to Leaf Numbers dfs,深度搜索

    Given a binary tree containing digits from 0-9 only, each root-to-leaf path could represent a number ...

  7. 解决 Mac OS X 下 IntelliJ IDEA、jEdit 等 Java 程序中文标点输入无效的方法

    Mac OS X 下基于 Java 的程序(如 IntelliJ IDEA.jEdit 等)会出现中文标点输入无效的问题,在中文输入法状态,可以输入中文字,但输入中文标点最后上去的是英文标点.查阅了相 ...

  8. cisco packet 实验教程(一)

    01. 开篇:组建小型局域网 实验任务 1.利用一台型号为2960的交换机将2pc机互连组建一个小型局域网: 2.分别设置pc机的ip地址: 3.验证pc机间可以互通. 实验设备 Switch_296 ...

  9. 广州地区常用的DNS解析服务器

    广州电信DNS: 首选:202.96.128.143 备用:202.96.128.68 首选:202.96.134.133 备用:202.96.128.166 首选:61.144.56.100备用:6 ...

  10. andorid人员文件上传服务器的搭建(tomcat中)

    1.将.war文件复制到tomcat服务器webapps下,启动服务器即可 2.访问工程路径http://localhost:8080/FileUpload/index.jsp即可测试上传 3.测试成 ...