#!/bin/sh
echo -n "Enter the raspberry ip address you want to connect:"
read Rasp_id
sshpass -p "the@Donut" ssh -t -X -oStrictHostKeyChecking=no pi@$Rasp_id << E2
echo -e "Enter the case you want to echo\n 1.1 a \n 2.1 b"
read option
case "\$option" in
1)
echo "a"
;;
2)
echo "b"
;;
esac
E2
SSHセッションを開始してからリモートシステムでいくつかの修正を実行するスクリプトを作成していますが、次の構文エラーが発生します。
bash: line 3: syntax error near unexpected token `)'
bash: line 3: ` 1)'
ベストアンサー1
問題は、stdinの使用を混在させてリモートシステムで実行されるプログラムに入力を提供し、そのプログラムに入力することです。
作成したとおり、次のことが発生します。
- リモートシェルは
echo -e "Enter the case you want to echo\n 1.1 a \n 2.1 b"
stdinから読み込み、それをエコーします。 - リモートシェルは
read option
stdinから読み取り、読み取りを実行します。 read
標準入力から読み込み、case "\$option" in
それのオプションを設定します。- リモートシェルは
1)
stdinから取得し、構文エラーを提供します。