Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash路径问题_Bash_Shell_Escaping_Spaces - Fatal编程技术网

Bash路径问题

Bash路径问题,bash,shell,escaping,spaces,Bash,Shell,Escaping,Spaces,我有一个脚本,其中包含以下行: propFile="${0%/*}/anteater.properties" “${0%/*}”是什么意思 此命令提供了脚本的路径-但路径上有空格,脚本无法找到此文件-如何处理 去除匹配的后缀/*,即最后一个斜杠之后的所有内容,包括斜杠本身 无论您在何处使用它(cat“$propFile”) 变量展开中的%运算符将删除给定给它的匹配后缀模式。因此${0%/*}接受变量$0,并在末尾删除所有匹配的/*。这相当于命令,该命令在给定路径时返回该路径的父目录 为了处理b

我有一个脚本,其中包含以下行:

propFile="${0%/*}/anteater.properties"
  • “${0%/*}”是什么意思
  • 此命令提供了脚本的路径-但路径上有空格,脚本无法找到此文件-如何处理
  • 去除匹配的后缀
    /*
    ,即最后一个斜杠之后的所有内容,包括斜杠本身

  • 无论您在何处使用它(
    cat“$propFile”


  • 变量展开中的
    %
    运算符将删除给定给它的匹配后缀模式。因此
    ${0%/*}
    接受变量
    $0
    ,并在末尾删除所有匹配的
    /*
    。这相当于命令,该命令在给定路径时返回该路径的父目录

    为了处理bash变量中的空格,每当展开变量时(即每当编写
    $var
    ),都应该引用它。简而言之,始终使用
    “$var”
    ,而不仅仅是
    $var


    考虑阅读bash手册中的和,以了解有关这两个主题的更多信息。

    引用肯定有效。但是,如果您想直接引用文件名中带有空格的文件名,可以使用\字符转义空格。@asf107,如果您想引用存储在变量中的文件名,请将其引为引号。以防万一。