声明找不到且无法打开 =: 没有这样的文件

声明找不到且无法打开 =: 没有这样的文件

你好,我使用的是 Ubuntu 19.10,bash 版本是 5.0.3(1)-release。我正在尝试写脚本。我检查了我的bash哪个bash命令和返回是/usr/bin/bash所以你把它放在脚本的第一行。

#!/usr/bin/bash
declare -i n = 1
while [ $n <= 99 ]
do 
  echo $n 
  n = $((n+2))
done

当我尝试运行它时,出现两个错误: test.sh:2:声明:未找到test.sh: 3: 无法打开 =: 没有这样的文件

答案1

您应该考虑更改脚本中的四件事。其中两个与语法相关:

  1. 作业周围不能有空格=。您在两处都遇到了此错误。
  2. 要进行算术小于或等于测试,请使用-lt, not <=。这<=是来自名为 的文件的输入重定向=。这就是你的“ no such file”错误的来源。

另外两个是:

  1. 始终双引号扩展。使用echo "$n"printf '%s\n' "$n"代替echo $n.使用[ "$n" -lt 99 ]而不是[ $n -lt 99 ].在一般情况下,shell 会将变量的值拆分为单词,并将文件名通配规则应用于每个单词。
  2. 你不需要declare -i这里。bash很少需要将变量声明为整数。

此外,由于您收到“ declare not found”错误,因此您可能没有使用bash.请考虑使您的脚本可执行,并且运行脚本时在命令行上指定显式解释器(这将使该#!行生效)。

也可以看看:

相关内容