Солярис эхо "[" проблема характера - PullRequest
1 голос
/ 01 февраля 2010

У меня есть скрипт bash, такой как


for i in `echo a [ matched.lines`
do
echo $i
done

почему вывод этого скрипта ниже

а

[

matched.lines


я хочу вывод текста как есть

a [matched.lines


как я могу это сделать

спасибо за помощь

Ответы [ 4 ]

2 голосов
/ 01 февраля 2010

Скрипт выводит каждый токен отдельно. Используйте echo -n $i внутри do ... done.

0 голосов
/ 02 февраля 2010

Извините, но это не будет делать то, что вы хотите.Ваш цикл for использует пробел в качестве разделителя аргументов.Это приведет к тому, что каждый элемент будет отображаться в отдельной строке.Добавление -n здесь не работает, потому что вы не получите \ n в конце строки.Честно говоря, я не понимаю, что вы пытаетесь сделать здесь.Если вы просто хотите отобразить эту «a [matched.lines» как строку, вы можете сделать это:


for i in "a [ matched.lines";do
  echo $i
done

Но я чувствую, что вы неправильно поймете, как использовать цикл for ....

0 голосов
/ 01 февраля 2010

для чтения файла с помощью оболочки, используйте цикл чтения

while read -r loop
do
 case "$line" in 
  *]* ) echo $line;;
 esac
done <"file"
0 голосов
/ 01 февраля 2010

Я заменил '' символы на '' на sed global replace и новой строки при выводе скрипта нет, спасибо за помощь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...