関数呼び出し時の構文エラー

関数呼び出し時の構文エラー

そのため、スクリプトを実行するときに各パラメータに対して新しい変数を生成する関数をスクリプトで生成してみました。これは私のコードです。

#!/bin/bash

# Creating function log
#ARG1=${1}

log() {
  echo "You called DA LOG FUNCTION!!!1!!11one111!"
}

log

#echo "${1}"
#echo "$ARG1"

fcta() {
  for ((x=0;x<1000;++x)); do
   "a$x"=${1}
   if [[ ${#} -gt 1 ]]; then
     shift
   else
     x=1001
   fi
  echo "${a$x}"
#  echo "${1}"
}

fcta $@

わかりました:

vagrant@localhost vagrant]$./luser-demo10.sh 12 12 12
You called DA LOG FUNCTION!!!1!!11one111!
./luser-demo10.sh: line 25: syntax error near unexpected token `}'
./luser-demo10.sh: line 25: `}'
[04:11----------------------------------------
vagrant@localhost vagrant]$

25番目の削減です。

#  echo "${1}"
} <----- LINE 25

fcta $@

編集:不足している「完了」について教えてくれてありがとう。人々は私に何をしたいのか尋ね、私は他の人に尋ねました。質問これでこの質問に対する回答が得られました(質問はなぜ構文エラーが発生するのですか)。もう一度ありがとうございます。

ベストアンサー1

あなたの関数にコマンドリストを閉じるdo一致はありません。done

努力する住宅検査スクリプトを確認してください。以下は、スクリプトで検出されたエラーと疑わしい点に関するレポートです。

Line 16:
  for ((x=0;x<1000;++x)); do
  ^-- SC1009: The mentioned syntax error was in this for loop.
      ^-- SC1073: Couldn't parse this arithmetic for condition. Fix to allow more checks.
                          ^-- SC1061: Couldn't find 'done' for this 'do'.

Line 25:
}
^-- SC1062: Expected 'done' matching previously mentioned 'do'.
 ^-- SC1072: Unexpected keyword/token. Fix any mentioned problems and try again.

おすすめ記事