表演简单时,我遇到了一个奇怪的问题 echo
命令。谁能解释一下发生了什么?这是场景,文件夹中只有三个文件,我想用空白字符替换它们的内容。文件是:
ev_tracker.css ev_tracker.html ev_tracker.js
我尝试了一个简单的命令,将空格字符回显给所有文件
$ echo \ > *
我收到以下错误:
bash: *: ambiguous redirect
所以,我试着更具体......
$ echo \ > ev_tracker.*
bash: ev_tracker.*: ambiguous redirect
还有更具体的......
$ echo \ > ev_tracker.{css,html,js}
bash: ev_tracker.{css,html,js}: ambiguous redirect
最后,我分别对每个文件执行了操作,没有错误。
$ echo \ > ev_tracker.css
$ echo \ > ev_tracker.html
$ echo \ > ev_tracker.js
$
谁能解释我收到错误的原因?我正在使用Ubuntu 14.04以及任何默认值 sh
它会有的变体。
所以你回复一个反斜杠而没有转义(因此它将是空白的)文件,所以只是单独回应每个文件,而不是使用通配符,它应该工作。否则,您可能需要构建一个循环或数组,以便通过迭代以一种方式逐个进行。似乎无法一个一个地弄明白。
—
Pimp Juice IT
您的重定向输出到 一个目的地 。如果您将三个不同的文件名作为单个目标提供,那么shell将会抱怨。 (我不能和它争论,3!= 1)。
—
Hennes
对,@hennes,我只是感到困惑,>操作无法弄清楚通过使用通配符我想要将输出发送到所有三个文件。但是,现在我知道它希望单个目标我将来肯定会循环这样的行动,或者使用如下所述的发球台。
—
Madcarrots