Как я негативно рисунок в файл bash-скрипт?

если я типа rm main!(.tex|.pdf) в терминал bash, он удалит все файлы, которые начинаются с main но не в конце .tex или .pdf, очистка различных ненужных файлов, разбросанных наборами LaTeX.

следующий скрипт оболочки, однако, не делает то, что я ожидаю, когда он помещается в файл, а затем запускается

#!/bin/bash

rm main!(.tex|.pdf)

синтаксическая ошибка сообщается в ( маркер. Что это дает? Каков канонический способ сделать что-то подобное в рамках bash сценарий. Есть ли более элегантный способ сделать это, чем втащить find в отношении проблемы?

5
задан ymbirtt
источник

1 ответов

Если схема не работает при запуске из скрипта, убедитесь, что extglob опция также устанавливается для неинтерактивного использования.

просто поставить

#!/usr/bin/env bash
shopt -s extglob

на верхней части вашего скрипта после hashbang. Таким образом, его легко заметить. Смотрите также:Glob – Greg'S Wiki

2
отвечен slhck 2014-05-04 19:24:53
источник

Другие вопросы bash linux