доступ к элементам в массиве в скрипте - PullRequest
0 голосов
/ 22 февраля 2019

Я пытаюсь распечатать все параметры в bash-скрипте «один за другим».
Для примера, который я хочу запустить:
./myscript привет всем друзьям
и смотрите результат ниже:

 hello  
 all  
 friends.  

я написал ниже код:

#!/bin/bash
li=$@
for(( j=0;j<$#;j++));
do
    echo ${li[$j]}
done

ошибка, когда я запускаю свой код, он печатает все аргументы сразу:

hello all friends

я знаю, что могу сделать это, изменивдля структуры в формате ниже:

#!/bin/bash
li=$@
for j in $li;
do
    echo $j
done

но я не хотел менять код, такой как выше.
, пожалуйста, помогите мне.
Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 22 февраля 2019

Вы можете написать с помощью параметра echo -n, чтобы пропустить печать новой строки в конце.

echo -n ${li[$j]}

Проверьте документы здесь.

0 голосов
/ 22 февраля 2019

Попробуйте это:

#!/bin/bash
li=$@
for(( j=0;j<$#;j++)); do
    printf '%s\n' ${li[$j]}
done

Здесь вы можете найти информацию о форматировании: https://wiki.bash -hackers.org / commands / builtin / printf

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