Я пробовал разные варианты попыток добиться следующего, но я просто не могу.Bash Script Regex match не может избежать двойных кавычек
#!/bin/bash
sb_command_passed=$*
regexMatch="^find every file matching '(.*)' in this folder and subfolders"
[[ $sb_command_passed =~ $regexMatch ]]
param1=${BASH_REMATCH[1]}
echo $param1
Теперь, проходя следующие к сценарию:
find every file matching "search" in this folder and subfolders
Это не возвращается поиска в качестве согласованного параметра. Если это удастся, я хотел бы передать регулярное выражение там:
find every file matching "\s.+[^&*]" in this folder and subfolders
и получить \ с в ответ + [^ & *].. Можете ли вы мне помочь?
Почему вы передаете строку '' находите каждый файл, соответствующий «\ s. + [^ & *]» В этой папке и вложенных папках «', а не только то, что вы * на самом деле хотите, - '' \ s. + [^ & *] "'? – Tomalak
Просто удалите одинарные кавычки: 'regexMatch ="^найдите каждый файл, соответствующий (. *) В этой папке и подпапках "' – morgano
@Tomalak хорошо, это на самом деле проблема, мне нужно передать все предложение в мой скрипт. – fineTuneFork