bash:传递带有空格作为参数的路径?

2024-01-16

我有一个 bash 脚本,它从用户接收一组文件。这些文件有时位于名称中带有空格的目录下。不幸的是不像这个问题 https://stackoverflow.com/questions/1574898/bash-and-filenames-with-spaces所有文件名都是通过命令行界面传递的。假设用户传入的路径被正确引用,因此空格(除了引用的空格之外)是路径之间的分隔符。如何以保留引号空格的方式将这些参数转发到 bash 脚本中的子例程?


#! /bin/bash

for fname in "$@"; do
  process-one-file-at-a-time "$fname"
done

请注意过度使用引号。这都是必要的。

将所有参数传递给另一个程序甚至更简单:

process-all-together "$@"

棘手的情况是当你想将参数分成两半时。这需要在简单的 POSIX shell 中编写更多代码。但也许 Bash 有一些特殊功能。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

bash:传递带有空格作为参数的路径? 的相关文章

随机推荐