Дополнительные команды для скрипта Bash

«Шпионское ПО» встроено в Unity's Dash, поэтому, пока вы не используете Unity (т.е. пока вы не используете «ванильный» аромат), вы «свободны от шпионского ПО».

Кстати, «шпионское ПО» будет отключено по умолчанию, начиная с Ubuntu 16.04 .

2
29.09.2018, 13:50
1 ответ

Изменить

#!/bin/bash

export var1="value1"
export var2="value2"
export var3="value3"

program

в

#!/bin/bash

if [ "$1" != "debug" ]; then
    export var1="value1"
fi

export var2="value2"
export var3="value3"

program

Первый аргумент командной строки для вашего скрипта будет доступен в $1, и если это не строка debug, export, переменная окружения var1.

Строка#!-может быть изменена на #!/bin/sh, поскольку скрипт (, как написано выше ), не использует никаких специфических функций bash-.


Вариант вышеописанного, который делает это по-другому с массивом, без фактической установки переменных в самом скрипте (только для programпри его запуске):

#!/bin/bash

if [ "$1" != "debug" ]; then
    vars=( var1="value1" )
fi

vars+=( var2="value2" var3="value3" )

env "${vars[@]}" program

или, для /bin/sh,

#!/bin/sh

mode=$1

set -- var2="value2" var3="value3"
if [ "$mode" != "debug" ]; then
    set -- var1="value1" "$@"
fi

env "$@" program
2
27.01.2020, 22:08

Теги

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