Как проверить, установлен ли атрибут оболочки bash? [duplicate]

Потому что тире не понимает этот вид башизма:

<(free -m)

Вместо этого используйте:

free -m | awk '/^Mem/ {print $4}'
2
14.03.2016, 23:55
2 ответа

В bash есть два списка опций. Один для shopt и один для set.

Проверьте одну опцию.

Чтобы вывести конкретную опцию (не изменяя ее) для shopt, используйте shopt -p name:

$ shopt -p xpg_echo
shopt -u xpg_echo

А для set используйте: shopt -po name (да, вы можете использовать shopt -op для set list).

$  shopt -po xtrace
set +o xtrace

Перечислить опции.

Чтобы перечислить все опции из shopt, используйте shopt (или многоразовый shopt -p).
Также можно использовать shopt -s или shopt -u.

Перечислить все опции для set можно с помощью set -o (связано: set +o).
Или: shopt -o эквивалентен set -o, а shopt -op - set +o.

Руководство

Из LESS=+/'^ *shopt \[' man bash:

При отсутствии опций или с опцией -p выводится список всех настраиваемых опций, Если используется опция -s или -u без аргументов optname, отображение ограничивается теми опциями, которые установлены или не установлены, соответственно.

Из LESS=+/'^ *set \[' man bash:

Если -o поставляется без имени опции, выводятся значения текущих опций. Если +o подается без имени опции, на стандартный вывод выводится серия команд set для воссоздания текущих настроек опций.

Примеры

$ set -o
allexport       off
braceexpand     on
emacs           on
errexit         off
errtrace        off
functrace       off
hashall         on
histexpand      on
history         on
ignoreeof       off
interactive-comments    on
keyword         off
monitor         on
noclobber       off
noexec          off
noglob          off
nolog           off
notify          off
nounset         off
onecmd          off
physical        off
pipefail        off
posix           off
privileged      off
verbose         off
vi              off
xtrace          off

И

$  shopt -sp
shopt -s checkwinsize
shopt -s cmdhist
shopt -s expand_aliases
shopt -s extglob
shopt -s extquote
shopt -s force_fignore
shopt -s histappend
shopt -s histverify
shopt -s interactive_comments
shopt -s progcomp
shopt -s promptvars
shopt -s sourcepath

Стоит упомянуть о shopt -op, который фактически перечисляет set опции:

$ shopt -op
set +o allexport
set -o braceexpand
set -o emacs
set +o errexit
set +o errtrace
set +o functrace
set -o hashall
set -o histexpand
set -o history
set +o ignoreeof
set -o interactive-comments
set +o keyword
set -o monitor
set +o noclobber
set +o noexec
set +o noglob
set +o nolog
set +o notify
set +o nounset
set +o onecmd
set +o physical
set +o pipefail
set +o posix
set +o privileged
set +o verbose
set +o vi
set +o xtrace
8
27.01.2020, 21:52

Используйте что-то вроде

if shopt -qo posix ; then

Чтобы отключить параметр, используйте

set +o posix

См. man bash , набор справки ] и помогите сделать покупки в для получения дополнительных сведений.

3
27.01.2020, 21:52

Теги

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