Обновить

Привет, иногда хочется утащить из скрипта переменные или функции. Это можно легко сделать используя 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
ЕЖЕДНЕВНЫЙ ХАБР | 7 АВГ 2026
Охват85K

АКПП Voith не включается выше второй передачи: разбираемся в J1939

Изучаю шину CAN J1939 через написание самописных утилит. Целенаправленно отключал датчик наддува для проверки своих программ.

И здесь случай: Идёт выпуск машин на маршрут. На одном из автобусов АКПП не включается выше второй передачи. Сканера нет читать нечем. Но есть C, Linux, CANable, map_id_j1939, viz_j1939.

АКПП Voith не включается выше второй передачи: разбираемся в J1939

Публикации