Как я могу использовать массивы в bash? [dубликат]

CamGrab

Описание - Инструмент, предназначенный для использования из сценариев оболочки и т. д., для захвата одного изображения с веб-камеры.

Особенности

Описание - Нет захвата изображения - Да Видео / изображение Эффекты - Нет Отправлять видео / изображение удаленно - Нет сохранения в разных форматах - Нет параметров для изменения свойств видео / изображения - Нет GUI на основе - Нет

2
задан 23 May 2017 в 15:39

3 ответа

Он работает, если вы добавляете строку crunchbang в головной конец скрипта, чтобы заставить интерпретатор оболочки использовать синтаксис bash, а не по умолчанию для старого синтаксиса sh. (Это работает для меня также без линии crunchbang, но по многим причинам рекомендуется использовать линию crunchbang.)

Я создал файл arraytest.

#!/bin/bash

declare -a arr=("element1" "element2" "element3")

for i in "${arr[@]}"
do
   echo "$i"
done

Тогда я сделал его исполняемым и выполнил его.

chmod ugo+x arraytest

$ ./arraytest
element1
element2
element3
4
ответ дан 22 May 2018 в 22:36
  • 1
    Я получаю old.sh: 3: old.sh: Syntax error: "(" unexpected еще ... но я сделал chmod + x вместо – answerSeeker 15 May 2017 в 06:55
  • 2
    Неважно, вы правы, это работает. Я продолжал выполнять через sh вместо bash – answerSeeker 15 May 2017 в 06:56

Он работает, если вы добавляете строку crunchbang в головной конец скрипта, чтобы заставить интерпретатор оболочки использовать синтаксис bash, а не по умолчанию для старого синтаксиса sh. (Это работает для меня также без линии crunchbang, но по многим причинам рекомендуется использовать линию crunchbang.)

Я создал файл arraytest.

#!/bin/bash declare -a arr=("element1" "element2" "element3") for i in "${arr[@]}" do echo "$i" done

Тогда я сделал его исполняемым и выполнил его.

chmod ugo+x arraytest $ ./arraytest element1 element2 element3
4
ответ дан 18 July 2018 в 13:17

Он работает, если вы добавляете строку crunchbang в головной конец скрипта, чтобы заставить интерпретатор оболочки использовать синтаксис bash, а не по умолчанию для старого синтаксиса sh. (Это работает для меня также без линии crunchbang, но по многим причинам рекомендуется использовать линию crunchbang.)

Я создал файл arraytest.

#!/bin/bash declare -a arr=("element1" "element2" "element3") for i in "${arr[@]}" do echo "$i" done

Тогда я сделал его исполняемым и выполнил его.

chmod ugo+x arraytest $ ./arraytest element1 element2 element3
4
ответ дан 24 July 2018 в 20:08

Другие вопросы по тегам:

Похожие вопросы: