【问题标题】:cat using relative paths on mac猫在mac上使用相对路径
【发布时间】:2012-07-09 10:14:38
【问题描述】:

我正在尝试将cat 4 个文件一个目录下到一个新文件,也下一个目录:

cat ./dira/file.txt ./dirb/file.txt ./dirc/file.txt ./dird/file.txt > ./dire/file.txt

我可以在终端上让它工作,但不能在以下地方工作:

for i in `ls -d prefix*`
do
  cd $i
  pwd
  cat ./dira/file.txt ./dirb/file.txt ./dirc/file.txt ./dird/file.txt > ./dire/file.txt
done

pwd 打印正确的目录。我收到错误:-bash:  : command not found

【问题讨论】:

  • “如何”是什么意思?这应该可以正常工作。
  • 查看我的编辑。这在终端中有效,但不是在简单的循环中。
  • 你的shell脚本中有\r/\n\040/\240混淆吗?
  • shell脚本是纯文本Text Edit文档,所以我不这么认为。我也没有在 bbedit 中看到任何错误的行尾。
  • FWIW,\040 是正常的[空格],\240 是[不间断空格]。您可以对文件进行grep'ed 以检查奇数字符。

标签: linux macos relative-path cat


【解决方案1】:

文件中的其中一行的开头必须有一个 不间断 空格(很容易通过在编辑过程中意外键入 option-space 来完成)。 shell 会认为这是一个单词,并尝试将不间断空格作为命令运行;这会产生您看到的“bash: : command not found”错误。

【讨论】:

  • 您可以使用普通空格和制表符来缩进。我怀疑你不小心输入了非中断版本(这是一个不同的代码,shell 不会将其识别为空格)。
  • 我可能在富文本中使用了常规空格,这些空格在纯文本中被转换为错误的空格。谢谢...
猜你喜欢
  • 2014-03-07
  • 2014-08-07
  • 1970-01-01
  • 2011-11-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-11-09
  • 1970-01-01
相关资源
最近更新 更多