powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Unix-системы [игнор отключен] [закрыт для гостей] / Строка в параметр
5 сообщений из 5, страница 1 из 1
Строка в параметр
    #34750704
Akh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть переменная содержащая несколько строк:
Допустим это:
VAR=`cat fileWithSomeStrings`

Есть скрипт который принимает параметры:
Допустим это:
script

Теперь, внимание, вопрос!
Как сделать так, чтобы каждая строка из VAR была одним параметром для script?

Типа того:
script "one, also one" "two"
Здесь есть первый параметр из нескольких слов и второй из одного. Теперь я хочу сделать так, чтобы эти параметры взялись из VAR

Если сделать #script $VAR тогда каждое слово пойдет как параметр, что мне не надо.
Если сделать #script "$VAR" тогда все уйдет одним параметром, что мне тоже не пойдет.
...
Рейтинг: 0 / 0
Строка в параметр
    #34750791
Фотография blinded
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IFS='' и читай себе с помощью read
или делай read l m тогда в l первое слово, а в m - остаток строки
...
Рейтинг: 0 / 0
Строка в параметр
    #34750850
Akh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
blindedIFS='' и читай себе с помощью read
или делай read l m тогда в l первое слово, а в m - остаток строки

Наверно, я что-то не пойму:

Файл, пусть такой:
автор
1 1
2


Читаю с помощью read:
Код: plaintext
1.
2.
IFS=\"
cat file | read VAR #VAR = 0A
Т.о. вообще ничего не считалось. То бишь перетерлась переменная новыми строками???

Аналогичная ситуация со вторым пунктом:
Код: plaintext
1.
cat file | read VAR VAR1 #VAR = 0A, VAR = 0A


Если попробовать так:
Код: plaintext
1.
2.
IFS=\"
script `cat file | read`
Тоже ничего не попадает в параметры
...
Рейтинг: 0 / 0
Строка в параметр
    #34751085
Akh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пошел немного дальше. Перегнал в массив.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
IFS="
"
j= 0 
for i in $VAR; do
    VAR1[j]=$i
    (( j = $j+ 1  ))
done
IFS=" "

Можно теперь как-нибудь этот массив вставить в параметры, чтобы каждая переменная массива была одним параметром?
...
Рейтинг: 0 / 0
Строка в параметр
    #34751374
Akh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Походу поборол. Спасибо, blinded, за участие.

Получилось из массива:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
COMMAND=`
j= 0 ;
while [ "${VAR1[j]}" != "" ]; do
    echo "${VAR1[j]}";
    (( j = $j+ 1  ));
done | awk 'BEGIN{ ORS=" "; print '"\"./script\" "' } {print "\""$0"\""}'
`
eval $COMMAND

...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Unix-системы [игнор отключен] [закрыт для гостей] / Строка в параметр
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]