Я использую следующее:
filename="Test File 17-07-2020.xls"
sshpass -p $password ssh root@$IP /bin/bash -s "$filename" << 'EOF'
echo $1
EOF
Это работает, когда имя файла равно Testfile.xls
и эхо выводит полное имя файла.
Но не удается, если имя файла называется Test File 17-07-2020.xls
Насколько я понимаю, пробелы нарушают ввод, поэтому он становится:
$1 = Test
$2 = File
$3 = 17-07-2020.xls
Есть ли способ передать это, сохраняя пробелы и имея его all in $1
Если я добавлю filename=$(echo "$filename" | sed 's/ /\\ /g')
перед командой SSHPASS, это сработает.
Это правильный способ сделать это или есть лучший способ?
Спасибо