或者,有关强大的文件名处理和在 shell 脚本中传递的其他字符串的介绍性指南。
我写了一个 shell 脚本,它在大多数情况下运行良好。但它在某些输入(例如某些文件名)上窒息。
我遇到了如下问题:
hello world,它被视为两个单独的文件hello和world.\[*?,它们会被一些文本替换,这实际上是文件的名称。'(或双引号"),在那之后事情变得很奇怪。\分隔符)。这是怎么回事,我该如何解决?
为什么在一个空文件夹执行ls > empty.txt显示我empty.txt内empty.txt?
这不是诗,这是真的,我不知道为什么。
对我来说,他们的思考方式ls > empty.txt是循序渐进的:
ls被执行,我得到输出(在那一刻无效)>意味着我得到了上一个命令的输出(实际上fd 2)empty.txt是获取ls(无)输出的文件的名称。那为什么要跑
猫空.txt
我得到
empty.txt
Run Code Online (Sandbox Code Playgroud)
如果文件夹是空的?