|
Непонятки в sh-сценариях c кавычками и не только
|
|||
---|---|---|---|
#18+
Комманда find ~/work/ \( -name '[a-zA-Z]*' -or -name '*h' \) -print ищет файлы, начинающиеся с прописных и строчных букв и файлы, оканчивающиеся на h. Перношу всю эту байду в скрипт для sh: #!/bin/sh find ~/work/ \( -name '[a-zA-Z]*' -or -name 'h' \) -print все работает. Теперь хочу чтобы шаблон поиска лежал в переменной. Казалось бы чего проще: #!/bin/sh files_pattern="-name '[a-zA-Z]*' -or -name '*h'" find ~/work/ \( $files_pattern \) -print Не находится ничего. Используя set +x для отладки понимаю, что в find sh передает '[a-zA-Z]*', но не [a-zA-Z]*, что и приводит к ненахождению. Убираю одинарные кавычки: #!/bin/sh files_pattern="-name [a-zA-Z]* -or -name *h" find ~/work/ \( $files_pattern \) -print Выдается ошибка, так как shell за место * подставляет все х..ю. Получается, что не получается и не на елку влезть и рыбку не съесть. Объясните как шелл работает с гребанными кавычками и как разрулить мой пример в sh сценарии. С благодарностью, Начинающий ... |
|||
:
Нравится:
Не нравится:
|
|||
30.12.2003, 03:14 |
|
Непонятки в sh-сценариях c кавычками и не только
|
|||
---|---|---|---|
#18+
Как с кавычками и переменными шелл работает смотри info bash и Advansed Bash Scripting Guide. Последнее есть на русском: Архив руководства в html-формате (~380Кб) А в твоем случае я бы создал временный файл с нужной командой и выполнял бы его. Что-то вроде Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
(прошу заранее прощения за возможные мелкие погрешности, но основная идея, думаю, понятна) ===== Не дождетесь! ... |
|||
:
Нравится:
Не нравится:
|
|||
30.12.2003, 11:28 |
|
Непонятки в sh-сценариях c кавычками и не только
|
|||
---|---|---|---|
#18+
Не факт что bash и sh работают с кавычками одинаково. Маны я конечно к sh читал. Но тем не менее с проблемой разобрался. sed для маскировки мета-символов (сдается мне что они только усложняют жизь, чем упрощают) и eval для раскрытия кавычек в $files_pattern спасают отца русской демократии. С наступающим. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.12.2003, 18:25 |
|
|
start [/forum/topic.php?fid=25&fpage=271&tid=1491695]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
64ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
44ms |
get tp. blocked users: |
2ms |
others: | 12ms |
total: | 169ms |
0 / 0 |