Как мне сопоставить строку с регулярным выражением в Bash?

Я пытаюсь написать сценарий bash, который содержит функцию, поэтому при получении файла .tar, .tar.bz2, .tar.gz и т. Д. Он использует tar с соответствующими ключами для распаковки файла.

Я использую операторы if elif then, которые проверяют имя файла, чтобы увидеть, чем оно заканчивается, и я не могу его сопоставить, используя метасимволы регулярных выражений.

Чтобы сохранить постоянное переписывание сценария, который я использую 'test' в командной строке, я подумал, что приведенное ниже утверждение должно сработать, я перепробовал все возможные комбинации скобок, кавычек и метасимволов, и все же это не помогло.

test sed-4.2.2.tar.bz2 = tar\.bz2$; echo $?
(this returns 1, false)

Я уверен, что проблема проста, и я искал везде, но я не могу понять, как это сделать. Кто-нибудь знает, как я могу это сделать?

139
задан Benjamin W. 20 August 2019 в 20:21
поделиться