zoukankan      html  css  js  c++  java
  • shell函数传递带空格的参数

    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时尽量把引用变量用双引号括起来。

  • 相关阅读:

    LayoutInflater
    windows 服务学习
    导入Android项目出现叹号 && invalid project description
    android eclipse 导入工程的问题
    77_Go基础_1_45 空接口
    78_Go基础_1_46 类型断言
    77_Go基础_1_44 接口是一种类型
    74_Go基础_1_41 结构体匿名字段
    76_Go基础_1_43 方法继承
  • 原文地址:https://www.cnblogs.com/pigerhan/p/3510990.html
Copyright © 2011-2022 走看看