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

  • 相关阅读:
    DVWA-7.3 SQL Injection(SQL注入)-High
    DVWA-7.2 SQL Injection(SQL注入)-Medium-绕过引号转义
    记一次错误
    笔记3
    笔记2
    题目--猜数字
    java基础-流程控制
    Python垃圾回收机制
    @staticmethod和@classmethod的作用与区别
    java转python代码
  • 原文地址:https://www.cnblogs.com/pigerhan/p/3510990.html
Copyright © 2011-2022 走看看