Обновить

Привет, иногда хочется утащить из скрипта переменные или функции. Это можно легко сделать используя source. Но есть заковыка. Скрипт-источник будет выполнен, что не всегда удобно. Пример:

$ cat test
#!/bin/bash

var1=bim
var2=bom

echo you should not see this $var1 $var2

Пробуем засорсить:

$ var1= var2=; . ./test; echo $var1 $var2
you should not see this bim bom
bim bom

Мы получили вожделенные переменные но при этом выполнился нежелательный код. Как этого избежать? Можно немного модифицировать скрипт:

$ cat test
#!/bin/bash

var1=bim
var2=bom
[[ $1 == only_vars ]] && return
echo you should not see this $var1 $var2

Теперь если сорсить скрипт с параметром only_vars, нежелательный код будет опущен, пробуем:

$ var1= var2=; . ./test only_vars; echo $var1 $var2
bim bom

Важно использовать именно return, exit закроет текущую оболочку.

Творите, выдумывайте, пробуйте!)

Теги:
Всего голосов 2: ↑2 и ↓0+3
Комментарии1

Найм в 2к26. Что меня удивило больше всего

В 2026 году решили расширить штат. Разместил вакансию, начался поиск.

За первые два дня после публикации вакансии пришло более 400 откликов. Это сумасшедшая цифра... Ладно, собрался, отфильтровал, осталось около 300. 

Начались собеседования, и именно на них я был сильно удивлён, ведь не так давно ситуация была другая…

Найм в 2к26. Что меня удивило больше всего

Публикации