如何在不防止删除空字符串的情况下防止单词拆分?

保护

我需要将参数扩展作为程序参数传递。扩展将导致文件名带有空格。因此,我将其双引号括起来以使文件名成为一个单词:"$var"

只要$var包含文件名,该程序就会获得一个单词参数,并且可以正常运行。但是,有时扩展会导致一个空字符串,当作为参数传递该字符串时,它将破坏程序(我无法更改)。

根据Bash参考手册,不删除空字符串是指定的行为:

如果将没有值的参数用双引号引起来,则将生成空参数并保留该参数。

但是,当我需要引用变量,又需要丢弃空字符串扩展时,该如何处理呢?

编辑:

多亏了George Vasiliou,我发现我的问题中缺少一个细节(只是试图使其简短:))。运行该程序是一个很长的java调用,缩写看起来像这样:

java -cp /etc/etc MyClass param1 param2 "$var" param4

确实,使用if像乔治描述的那样陈述可以解决这个问题。但是,这将需要一个在then子句中带有“ $ var”的调用,以及另一个子句中不带有“ $ var”的调用else

为了避免重复,我想看看是否有一种方法可以使用单个调用,该调用在空“ $ var”时放弃扩展。

艾鲁瓦

${parameter:+word} 参数扩展形式,似乎做的工作

( xyz=2; set -- ${xyz:+"$xyz"}; echo $# )
1

( xyz=; set -- ${xyz:+"$xyz"}; echo $# )
0

( unset xyz; set -- ${xyz:+"$xyz"}; echo $# )
0

所以应该翻译成

program ${var:+"$var"}

在你的情况下

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在不丢失Java单词的情况下拆分字符串?

来自分类Dev

如何在不使用拆分方法的情况下找到字符串中最长的单词

来自分类Dev

如何在不使用数组的情况下删除字符串中的重复单词?

来自分类Dev

如何在不使用笔划的情况下根据特定字符拆分字符串

来自分类Dev

如何在不获取空值到输出数组的情况下拆分字符串

来自分类Dev

如何在不创建格式错误的HTML标签的情况下拆分字符串?

来自分类Dev

如何在不使用正则表达式的情况下拆分字符串

来自分类Dev

如何在不丢失单词的情况下分割字符串?

来自分类Dev

如何在不改变单词位置的情况下反转字符串

来自分类Dev

如何在不使用.replace的情况下替换Java字符串中的单词

来自分类Dev

如何在没有引号的情况下多次使用的字符串中查找单词

来自分类Dev

如何在没有编译器警告的情况下返回对空字符串的const引用?

来自分类Dev

如何在不打扰标记的情况下从流文档段落中删除字符串?

来自分类Dev

如何在不使用While的情况下删除左侧重复的字符串?

来自分类Dev

如何在不干扰MarkUp的情况下从flowdocument段落中删除字符串?

来自分类Dev

如何在不影响字符串的情况下删除括号之间的空白

来自分类Dev

如何在不丢失顺序的情况下删除 Swift 中字符串的重复行?

来自分类Dev

如何在不使用Gitolite的情况下防止git中远程分支删除

来自分类Dev

如何在不使用Gitolite的情况下防止git中远程分支删除

来自分类Dev

在Java中,如何在不使用方括号中的定界符的情况下拆分字符串?

来自分类Dev

如何在没有功能的情况下拆分不同列中的字符串值

来自分类Dev

如何在没有给定模式的情况下将字符串拆分为相同的部分?

来自分类Dev

如何在不使用split和stringtokenizer的情况下反转Java中字符串中的单词

来自分类Dev

如何在没有哈希图的情况下找到字符串中的第一对重复单词?

来自分类Dev

在不忽略空格的情况下拆分字符串

来自分类Dev

如何在不干扰R字符串中其他值的情况下删除列中的特殊字符

来自分类Dev

如何在不再次调用sed或awk的情况下从字符串中删除点字符?

来自分类Dev

如何使用C ++在没有readline的情况下显示字符串中的多个单词?

来自分类Dev

在不删除任何字符的情况下,在正则表达式匹配项处拆分字符串

Related 相关文章

  1. 1

    如何在不丢失Java单词的情况下拆分字符串?

  2. 2

    如何在不使用拆分方法的情况下找到字符串中最长的单词

  3. 3

    如何在不使用数组的情况下删除字符串中的重复单词?

  4. 4

    如何在不使用笔划的情况下根据特定字符拆分字符串

  5. 5

    如何在不获取空值到输出数组的情况下拆分字符串

  6. 6

    如何在不创建格式错误的HTML标签的情况下拆分字符串?

  7. 7

    如何在不使用正则表达式的情况下拆分字符串

  8. 8

    如何在不丢失单词的情况下分割字符串?

  9. 9

    如何在不改变单词位置的情况下反转字符串

  10. 10

    如何在不使用.replace的情况下替换Java字符串中的单词

  11. 11

    如何在没有引号的情况下多次使用的字符串中查找单词

  12. 12

    如何在没有编译器警告的情况下返回对空字符串的const引用?

  13. 13

    如何在不打扰标记的情况下从流文档段落中删除字符串?

  14. 14

    如何在不使用While的情况下删除左侧重复的字符串?

  15. 15

    如何在不干扰MarkUp的情况下从flowdocument段落中删除字符串?

  16. 16

    如何在不影响字符串的情况下删除括号之间的空白

  17. 17

    如何在不丢失顺序的情况下删除 Swift 中字符串的重复行?

  18. 18

    如何在不使用Gitolite的情况下防止git中远程分支删除

  19. 19

    如何在不使用Gitolite的情况下防止git中远程分支删除

  20. 20

    在Java中,如何在不使用方括号中的定界符的情况下拆分字符串?

  21. 21

    如何在没有功能的情况下拆分不同列中的字符串值

  22. 22

    如何在没有给定模式的情况下将字符串拆分为相同的部分?

  23. 23

    如何在不使用split和stringtokenizer的情况下反转Java中字符串中的单词

  24. 24

    如何在没有哈希图的情况下找到字符串中的第一对重复单词?

  25. 25

    在不忽略空格的情况下拆分字符串

  26. 26

    如何在不干扰R字符串中其他值的情况下删除列中的特殊字符

  27. 27

    如何在不再次调用sed或awk的情况下从字符串中删除点字符?

  28. 28

    如何使用C ++在没有readline的情况下显示字符串中的多个单词?

  29. 29

    在不删除任何字符的情况下,在正则表达式匹配项处拆分字符串

热门标签

归档