LINUX.ORG.RU

По массивам в bash

 ,


0

2

Доброго времени суток. Как можно в bash записать вывод команды screen -ls? Т.е:

23257.name_session1 (06/25/2017 10:41:18 PM)(Detached)
22011.name_session2 (06/25/2017 07:50:33 PM)(Detached)
arr[0] = 23257.name_session1;
arr[1] = 22011.name_session2;
Как можно такое реализовать? Заранее спасибо.



Последнее исправление: beastie (всего исправлений: 2)

$ cd "/run/screen/S-$USER"
$ arr=(*)
Zmicier ★★★★★
()
Ответ на: комментарий от sin_a
user@debian8-x64:~$ cat script.sh
#!bin/bash
arr=($(screen -ls | awk '{print ($1)}'))
echo $arr[0]
user@debian8-x64:~$ sh script.sh
script.sh: 2: script.sh: Syntax error: "(" unexpected
continue
() автор топика
Ответ на: комментарий от continue

У тебя в шабанг прописан bash но ты вызываешь при помощи sh. Последний массивы не умеет. Либо сделай права 755 и вызывай ./script , либо вызывай через bash.

Кроме того, здесь не предусмотрен случай если screen -ls выводит и другие строки.

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