Bash menampilkan tanda kutip tunggal sehingga menunjukkan perintah yang sintaks inputnya valid. Itu tidak menjalankan perintah yang berisi tanda kutip tunggal ini dalam parameter ke sshperintah.
ssh … '"sudo' /home/pi/shared/blink.sh 27 'off"'
memberitahu Anda bahwa 4 parameter terakhir dari perintah ssh adalah "sudo, /home/pi/shared/blink.sh, 27dan off".
Pada host jarak jauh, daemon ssh menggabungkan kata-kata dari perintah dengan spasi sebagai pemisah, sehingga perintah jarak jauh yang Anda jalankan adalah
"sudo /home/pi/shared/blink.sh 27 off"
Upaya ini untuk mengeksekusi perintah yang namanya sudo /home/pi/shared/blink.sh 27 off, yang tentu saja tidak ada.
Hapus tanda kutip ganda dari definisi Anda tentang testvar.
Tidak masalah di sini, tetapi mungkin penting dalam kasus Anda yang sebenarnya: alih-alih ${testvar}, tulis "$testvar"(atau "${testvar}"jika Anda mau, tetapi kurung kurawal opsional). Selalu beri tanda kutip ganda di sekitar substitusi variabel kecuali Anda tahu mengapa Anda harus mengabaikannya. "$testvar"memperluas ke nilai variabel testvar, sedangkan $testvarketika tidak dalam tanda kutip ganda memperlakukan nilai testvarsebagai daftar pola glob yang dipisahkan oleh spasi.