Кроме того, если вы работаете в большинстве UNIX & amp; Linux, вы можете временно увеличить размер стека с помощью следующей команды:
ulimit -s unlimited
Но будьте осторожны, память - это ограниченный ресурс и с большой силой приходят большие обязанности:)
Я думаю, что Вы хотите сказать, "Последние четыре символа $file, равного .txt
?" Если так, Можно использовать следующее:
if [ ${file: -4} == ".txt" ]
Примечание, что пространство между file:
и -4
требуется как ':-' модификатор, означает что-то другое.
Вы просто не можете быть уверены в системе Unix, что .txt файл действительно является текстовым файлом. Ваш лучший выбор состоит в том, чтобы использовать "файл". Возможно, попытайтесь использовать:
file -ib "$file"
Тогда можно использовать список типов MIME, чтобы соответствовать против или проанализировать первую часть MIME, где Вы получаете материал как "текст", "приложение", и т.д.
Можно использовать команду "файла", если Вы на самом деле хотите узнать информацию о файле, а не полагаться на расширения.
, Если Вы чувствуете себя довольными использованием расширения, можно использовать grep, чтобы видеть, соответствует ли это.
Сделайте
if [ "$file" == "*.txt" ]
как это:
if [[ $file == *.txt ]]
таким образом, удвойте скобки и никакие кавычки.
правая сторона ==
является шаблоном оболочки. При необходимости в регулярном выражении используйте =~
тогда.