Хотя мне кажется странным, что вы сравниваете переменную с чем-то, что вы только что установили, основная проблема заключается в том, что вы используете числовой оператор сравнения (-ne)
для того, что ожидается. быть именем файла (текста ). Вместо этого используйте:
if [ "$filename" != "$1" ]
... где я также процитировал ваши переменные .
Бонус указывает на комментарий steeldriver , который побудил меня изучить это немного глубже.
Основываясь на моем тестировании, я считаю, что ksh видитne
числовой оператор сравнения и выполняет цикл переменного и арифметического расширения двух операндов $filename
и $1
. Таким образом, $filename
превращается в test.txt
, который ksh распознает как возможный compound variable
. Поскольку test
не установлен, вы получаете сообщение об ошибке test.txt: no parent
.
С этим разобрались. Мне пришлось отформатировать жесткий диск, а затем смонтировать его как:
sudo mkdir /media/HDD
sudo mount /dev/sda /media/HDD