kintone シェルスクリプトについて

https://developer.cybozu.io/hc/ja/articles/115002734066 

お世話になりなっております。

バックアップの自動化をしたくこちらの記事を参考にプログラムの作成を行っているのですが、

エラーが出てしまいここから手詰まりの状態です。

ご教授よろしくお願いいたします。

コード

#!/bin/bash

inputDomain="ドメイン"

inputApp="アプリID"

inputToken="APIトークン"

outputDomain="ドメイン"

outputApp="アプリID"

outputToken="APIトークン"

attachmentDir="C:\cygwin64\home\USERNAME" こちらの部分のが分かりません あっているのかすら

backupFields=$id,"文字列" # ここには必ず $id を含めるようにしてください

backupFile=backup.csv

syncFile=syncFile.csv

# バックアップ済最新のレコードID

lastRecordId=$(cli-kintone --export -a $outputApp -d $outputDomain -t $outputToken -c "recordid" -q "order by $id desc limit 1" | sed "1 d")

if [$lastRecordId -eq ""]; then

  lastRecordId=0

fi

# 新規にバックアップ

# バックアップ元からエクスポート

cli-kintone --export -d $inputDomain -a $inputApp -t $inputToken -b $attachmentDir -q '\$id > $lastRecordId' | sed "1 s/\$id/recordid/" > $backupFile

# バックアップ先へインポート

cli-kintone --import -d $outputDomain -a $outputApp -t $outputToken -f $backupFile -b $attachmentDir

# レコードの同期

# バックアップ元からエクスポート

cli-kintone --export -d $inputDomain -a $inputApp -t $inputToken -b $attachmentDir -q '\$id <= $lastRecordId' | sed "1 s/\$id/*recordid/" > $syncFile

# バックアップ先へインポート

cli-kintone --import -d $outputDomain -a $outputApp -t $outputToken -f $syncFile -b $attachmentDir

エラー内容

2022/02/17 11:01:09 AppError: 400 [CB_VA01] 入力内容が正しくありません。 (fYjyR3
2gVAnO7x2CVEao) {"query":{"messages":["クエリ記法が間違っています。"]}}
./kintone-backup.sh: 16 行: [: -eq: 単項演算子が予期されます
2022/02/17 11:01:10 AppError: 400 [CB_VA01] 入力内容が正しくありません。 (XU6ya9
mB39CTs6zH7f1m) {"query":{"messages":["クエリ記法が間違っています。"]}}
2022/02/17 11:01:10 EOF
2022/02/17 11:01:10 AppError: 400 [CB_VA01] 入力内容が正しくありません。 (4GCwwX
Ss0CRCu82HcLm0) {"query":{"messages":["クエリ記法が間違っています。"]}}
2022/02/17 11:01:11 EOF

シェル詳しくないので参考に、、、という形になります。

サンプルが、という部分もありますがバックアップ済み最新レコードの対象フィールドをreocrdidでなく$id(recordidというフィールドが存在しないと思うので)にして$idでレコード番号フィールドコードのみ指定しつつ、クエリ記法についてはダブルコーテーションないでは$idの前にエスケープを付けてあげればここに関しては通るかと思います。

if文の-eqも数値比較にしか使えないようなので = にしてしまった方がいいかもです。

全文試してなくすみません。

# バックアップ済最新のレコードID

lastRecordId=$(cli-kintone --export -a $outputApp -d $outputDomain -t $outputToken -c "\$id" -q "order by \$id desc limit 1" | sed "1 d")
if [$lastRecordId = ""]; then

 

nabe様

ご回答ありがとうございます。

いただいたコードに修正をしてみたところ3つエラーが出ていたのが

2つになりました。

残りの2つもqueryの設定だと思われるのですが$lastRecordIDという部分で引っかかっている気がしています。

どうしたらよいのかなにかわかることがあればご教授いただきたいです。

よろしくお願いいたします。