Не используйте echo
, чтобы увидеть, какая команда выполняется. Он печатает команду после синтаксического анализа, то есть после того, как кавычки и escape-последовательности были применены и удалены); поэтому, если вывод echo
включает кавычки и/или escape-последовательности, как вы ожидаете увидеть в необработанной командной строке (, то есть до синтаксического анализа ), это указывает на то, что что-то ужасно неправильно. Сравните вывод этих двух команд echo
:
$ month=Jan
$ var="Inputs/${month}\\ 2019\\ Debit.CSV"
$ echo $var
Inputs/Jan\ 2019\ Debit.CSV
$ echo Inputs/Jan\ 2019\ Debit.CSV
Inputs/Jan 2019 Debit.CSV
В первом случае escape-последовательности печатаются, указывая на то, что они не были проанализированы, применены и удалены. Во втором они исчезли, что указывает на то, что они были проанализированы, применены и удалены.
Итак, как это исправить? Два правила :1 )не помещают кавычки или escape-последовательности в переменные (, за исключением странных случаев, когда строка будет проходить дополнительный уровень синтаксического анализа ), а 2 )вместо этого помещают double -заключает в кавычки все ссылки на переменные (, включая снова ${args[@]}
)(, есть некоторые странные исключения ). Кроме того, вы можете добавить в массив с помощью array+=("new" "elements")
.
Вот исправленный скрипт:
#!/usr/bin/env bash
clear
months=(Jan Feb)
args=()
for month in "${months[@]}"; do
args+=(-p "Inputs/${month} 2019 Debit.CSV" "Inputs/${month} 2019 Credit.CSV")
done
python ExpenseManager.py "${args[@]}"
exit 0
Диск зашифрован, поэтому нет абсолютно никакого смысла искать на диске текстовую строку. В лучшем случае вам нужно выполнить поиск в смонтированной файловой системе, так как это расшифрованный уровень, но любая запись в него может перезаписать ваши удаленные данные.
Посмотрите на вывод этой команды, чтобы определить устройство файловой системы для поиска (, например/dev/mapper/myhome
):
df -h /path/to/oldfile | awk 'NR>1 {print $1}'
Затем вы можете попытаться восстановить то, что осталось от данных файла, следуя инструкциям в Восстановление случайно удаленных файлов