Как мне написать путь к файлу, который включает в себя регулярное выражение - PullRequest
1 голос
/ 24 марта 2020

В зависимости от системы, над которой я работаю, возможны 2 различных пути (взаимоисключающие):

System1: /tmp/aword/foo
System2: /tmp/bword/foo

Я должен вывести что-то в файл foo независимо от того, какую систему я встреча (через сценарий оболочки).

Как включить регулярное выражение в сам путь, чтобы взять правильный (существующий) путь?

кое-что, что я пробовал:

#doesn't work
echo Hello > /tmp/(a|b)word/foo
#doesn't work
echo Hello > /tmp/[a|b]word/foo

есть ли способ сделать это без необходимости включать в него тест, который проверяет существование пути?

1 Ответ

2 голосов
/ 24 марта 2020

Если это буквально aword и bword и вы знаете, что существует только один из них, вы можете использовать

echo 'Hello' > /tmp/[ab]word/foo

Это шаблон оболочки и , документированный в Bash manual или POSIX sh spe c.

Если, однако, оба пути существуют, Bash будет жаловаться на

-bash: [ab]word: ambiguous redirect
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...