LINUX.ORG.RU

я чёт не пойму....


0

0

Выполните кто нить у себя в bash вот такую строчку: р=*; echo $p У меня распечатывается текущий каталог... В принцепе на это забить бы можно было, но вот если делаешь в скрипте так: H=`cat temp | awk '/xxx/ {print}'`; echo $H и в файле всречаются звёздочки, то соответственно вмечто них пишутся всё содержимое текущего каталога.... P.S. При команде * в bash, пишется команда не найдена, да и alias ничего подозритеьного не выводит... В чём может быть трабл????

anonymous

[vrr@mobile100 vrr]$ р=*; echo $p

[vrr@mobile100 vrr]$

не знаю в чем трабл...

[vrr@mobile100 vrr]$ cat temp ggg

* r ff * v[vrr@mobile100 vrr]$ H=`cat temp | awk '/xxx/ {print}'`; echo $H

[vrr@mobile100 vrr]$

anonymous
()

Уважаемый anonymous. bash, в описанном Вами случае, делает в точности то, что должна делать любая оболочка Unix. Когда Вы пишете echo $p она подставляет вместо p его значение ($p == значение переменной p) и получает "echo *". Поскольку * в таком контексте означает "любое имя файла в текущем каталоге кроме скрытых файлов" bash распечатывает список файлов каталога.

Поэтому если Вам нужно подавить преобразование звездочки в список файлов, надо явно запретить bash это делать. Как это можно сделать я с удовольствием объясню Вам в следующий раз, когда Вы переформулируете свой вопрос на нормальном русском языке.

anonymous
()

sed s/\*/\\\*/g temp | awk '/xxx/ {print}'

ananas ★★★★★
()

Здравствуйте, уважаемые посетители этого топика!!! Что значит нормальный русский язык и ненормальный, как их отличить?? А вот если бы уважаемый anonymous, смог бы немного потратить время и ответить на вопрос: "Как подовить преобразование звёздочки в список файлов" я бы был очень благодарен и несказано рад.

С наилучшими пожеданиями, anonymous.

anonymous
()

Много способов. Основной, это взять переменную в двойные кавычки. Например echo "$p". А нормальный русский язык это язык без ненужных (и безграмотных) англицизмов.

anonymous
()

можно делать так:
echo \*

anonymous
()

В tcsh, bash (не знаю насчёт других) - определить переменную noglob.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.