Как я могу проверить, существует ли массив в рыбе? - PullRequest
1 голос
/ 01 декабря 2019

Метод, который я сейчас использую, кажется, работает нормально в этом конкретном случае, но когда я впервые искал ответы, я не мог найти никаких вопросов по этому поводу. Итак, пример того, как я проверяю массивы в настоящее время:

# An example array, $array_1, with three items.
set -l array_1 "item_1" "item_2" "item_3"
# How I'm checking if an array exists.
if test -n "$array_1"
  echo "The array exists."
end
# How I'm checking if an array doesn't exist.
if test -z "$array_2"
  echo "The array does not exist."
end
# How I'm checking if an array element exists.
if test -n "$array_1[2]"
  echo "Item 2 from the array_1 exists."
end

Я не знаю, является ли это предлагаемыми методами проверки массивов, но в данный момент эти методы работают в моих конкретных случаях. Есть ли случай, когда эти методы сломаются? И знает ли кто-нибудь о лучшем способе выполнения этих проверок, который будет считаться наилучшей практикой?

Любой вклад приветствуется. Надеемся, что ответы на этот вопрос помогут кому-нибудь еще в будущем изучить работу с массивами в оболочке рыбы.

1 Ответ

4 голосов
/ 01 декабря 2019

Использование set -q.

if set -q array_1
    echo "array_1 exists"
end

if set -q array_1[2]
    echo "Item 2 from array_1 exists
end
...