Судя по строке с ошибкой ( ': Нет такого файла ...
вместо ' filename ': Нет такого файла ...
), проблема, вероятно, заключается в вашем images.txt
, строки которого завершаются CR-LF (то есть images.txt
происходит из мира Windows).
Из-за этого ваша строка
переменная (имя файла) заканчивается неправильным CR
(возврат каретки) (такого файла нет ...). Более того, когда он отображается на экране, из-за встроенного управляющего символа CR
печать продолжается с начала строки и перезаписывает имя файла.
Измените формат images.txt
так, чтобы его строки заканчивались LF (например, используйте утилиту dos2unix
), или отфильтруйте завершающий CR в bash.
[обновление] Если вы решите отфильтровать CR в bash, в идеале вы можете сделать следующее:
read -r -d $ '\ r' line
read -r line
: line = $ {line% $ '\ r'}
Uso de la prueba de shell:
#!/bin/bash
read -rp "Choose a number between 1 and 100: " num
echo
if [ "$num" -le 100 -a "$num" -ge 1 ]; then
echo "You chose $num"
else
echo "you chose a number outside of the boundary"
fi
Usando la prueba extendida de bash:
#!/bin/bash
read -rp "Choose a number between 1 and 100: " num
echo
if [[ "$num" -le 100 && "$num" -ge 1 ]]; then
echo "You chose $num"
else
echo "you chose a number outside of the boundary"
fi
Uso de la aritmética de shell:
#!/bin/bash
read -rp "Choose a number between 1 and 100: " num
echo
if ((num<=100 && num>=1)); then
echo "You chose $num"
else
echo "you chose a number outside of the boundary"
fi
Nota :Está utilizando -o
para o pero parece querer -a
para y . Con o solo debe pasar una condición, por lo que el número podría ser -1 o 101.
Además, el lado derecho de -o
es como una prueba completamente nueva, por lo que debe volver a introducir la variable en ese lado. Además, solo estoy usando else
en lugar de la declaración elif
porque si el número no pasa la primera prueba, no hay necesidad de realizar otra prueba en él.
Esto es un poco tarde, pero me encontré con el mismo problema. Como resultado, debe deshabilitar la preferencia 'Borrar archivos en medios extraíbles en lugar de la creación de "papelera". Aparentemente, PCManFM ve cualquier unidad con un botón de desmontaje como medio extraíble . Una vez hecho esto, el envío de archivos a la papelera funciona como se esperaba.