出现以下错误:-bash: 1: 尝试执行 for 循环时未找到命令

出现以下错误:-bash: 1: 尝试执行 for 循环时未找到命令

当我尝试执行以下命令时:

for x in $(seq 10); do echo $($x >> c.txt); done

我收到以下错误:

-bash: 1: command not found

答案1

shell 看到后所做的echo $($x >> c.txt)就是首先处理命令​​替换$($x >> c.txt)。这将被命令的输出替换$x >> c.txt。这$x1在循环的第一次迭代中,但没有这样的命令,因此会出现错误(如果没有与 1 到 10 范围内的整数相对应的命令,则循环的每次迭代都会出现一个错误;输出问题中可能被截断)。

你可能想做类似的事情

for x in $(seq 10); do
   echo "$x" >>c.txt
done

(没有命令替换),或者只是

seq 10 >>c.txt

这将产生同等的效果。

答案2

第一次执行循环时,xwill 是1,因此您执行echo $(1 >> c.txt)时 shell 会尝试执行1,但未找到。

如果您添加您实际想要做的事情,我们可以指出要更改的内容。

答案3

我认为您的 bash 定义在脚本上没有正确定义。

输出:

-bash: 1: 未找到命令

通常是指 bash 定义写得不好,请确保在脚本的第一行定义如下:

#!/bin/bash

如果 bash 的位置不同,您还可以通过以下方式找到它:

which bash

相关内容