ステートメントが見つからず、開けません =: そのファイルがありません

ステートメントが見つからず、開けません =: そのファイルがありません

こんにちは。私はUbuntu 19.10を使用しており、bashバージョンは5.0.3(1)リリースです。スクリプトを作成しようとしています。私のbashを確認しました。どの強打コマンドと戻りは次のとおりです。/usr/bin/bashだからスクリプトの最初の行に入れます。

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

実行しようとすると、2つのエラーが発生します。 test.sh:2: ステートメント: 見つかりませんそしてtest.sh: 3: 開くことができません=: そのファイルはありません

ベストアンサー1

スクリプトの変更を考慮する必要がある4つのことがあります。そのうちの2つは構文に関連しています。

  1. 課題の周りにスペースを入れないでください=。両方の場所でこのエラーが発生しました。
  2. 小さいか等しい算術テストを実行するには、-ltnotを使用します<=。これは<=名前付きファイルの入力リダイレクトです=。ここでno such fileエラーが発生します。

残りの2つは次のとおりです。

  1. 常に二重引用符が展開されます。 。代わりにecho "$n"orprintf '%s\n' "$n"の代わりにecho $n使用してください[ "$n" -lt 99 ][ $n -lt 99 ]通常、シェルは変数の値を単語に分割し、各単語にファイル名のグロービング規則を適用します。
  2. ここでは必要ありませんdeclare -ibash変数を整数として宣言する必要はほとんどありません。

declare not foundまた、エラーが発生するため、bashスクリプトを実行可能にすることも検討してください。いいえスクリプトを実行するときは、コマンドラインに明示的なインタプリタを指定します(これを行うとその行が#!適用されます)。

また見なさい:

おすすめ記事