如何让bash正确解析带有空格的文件名?
假设我有一个可执行的如何让bash正确解析带有空格的文件名?,bash,Bash,假设我有一个可执行的myProgram,它将文件名作为参数之一,并将大量内容输出到stdout。现在我想编写一个bash脚本来调用myProgram,并通过管道将输出传输到less。通常我会创建一个bash脚本myCommand: #!/bin/bash myProgram $* | less 但不知何故,bash会将任何带有空格的文件名拆分为多个参数。例如,它转换为 myCommand some\ file -m 5 进入 这当然会导致错误。有没有办法解决这个问题?我尝试在$*周围添加“,
myProgram
,它将文件名作为参数之一,并将大量内容输出到stdout
。现在我想编写一个bash
脚本来调用myProgram
,并通过管道将输出传输到less
。通常我会创建一个bash脚本myCommand
:
#!/bin/bash
myProgram $* | less
但不知何故,bash会将任何带有空格的文件名拆分为多个参数。例如,它转换为
myCommand some\ file -m 5
进入
这当然会导致错误。有没有办法解决这个问题?我尝试在
$*
周围添加“
,但后来意识到这没有用,因为它会导致整个参数列表变成一个单独的参数,这不是我想要的。用“$@”
替换$*
myProgram“$@”| less
将$*
替换为“$@”
。可能存在重复的
myProgram some file -m 5 | less