Отображение X-программ в удаленных системах

Я привел три примера, первые два связаны с циклами , а - с циклами до . Первый пример использует синтаксис, очень близкий к вашему оригиналу, третий немного сложнее, поскольку он использует динамические настройки для максимума счетчика и массив для итерации, хотя слова (аргументы, разделенные пробелами) передаются по одному. Это простые примеры, предназначенные только для ответа на ваши прямые вопросы на языке сценариев Bash, если вам нужны более сложные примеры, см. Ссылку, прикрепленную к сценарию, который я поддерживаю на GitHub, для примеров вложенных циклов среди прочая техника-волшебство.

Пример 1

#!/usr/bin/env bash
let _counter=0
let _max="5"
while [ "${_counter}" -lt "${_max}" ]; do
    echo "${_counter}"
    let _counter=++
done
unset _counter
unset _max

Пример выполнения 1 пример

./example_one.sh
1
2
3
4
5

Пример 2

#!/usr/bin/env bash
_arr_args=( "${@}" )
let _counter=0
let _max="${#_arr_args[@]}"
while [ "${_counter}" -lt "${_max}" ]; do
    echo "${_arr_args[${_counter}]}"
    let _counter=++
done
unset _counter
unset _max

Пример выполнения 2 примера

./example_two.sh "$(seq 1 5)"
## same output as example one

Пример 3 (бонус)

#!/usr/bin/env bash
_arr_args=( "${@}" )
let _counter=0
let _max="${#_arr_args[@]}"
until [ "${_counter}" = "${_max}" ]; do
    echo "${_arr_args[${_counter}]}"
    let _counter=++
done
unset _counter
unset _max

Пример выполнения 3 примера

./example_three.sh "$(seq 1 5)"
## same output as example one

Примечания для новых авторов сценариев Bash

  • искать встроенные переменные / массивы и правила подстановки; это сэкономит ваше время и усилия, а также избавит вас от ненужного подключения к другим программам.
  • найдите shellcheck , он доступен в большинстве дистрибутивов и в исходной форме от его авторов и интегрирован в Code Climate с помощью GitHub.
  • как ускользало от вышеупомянутого , вот ссылка на пример сценария, который использует оба типа цикла, показанные выше, а также автоматическую проверку кода. Однако намерение сценариев выходит далеко за рамки ответа на вышеуказанный вопрос, поэтому ищите «while» и «until», чтобы найти соответствующие функции, которые используют эти вызовы.
  • bash ! = sh есть сходства, но они разные, лично я считаю bash лучшим выбором, потому что он с меньшей вероятностью даст сбой при использовании сценария sh, где as shell будет делать странные вещи с синтаксисом bash.

1
02.09.2015, 01:54
0 ответов

Теги

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