Если Вы не можете произвести ЗАВЕРШЕННЫЕ ПУСТЫМ УКАЗАТЕЛЕМ имена файлов (как, например. find -print0
) можно попытаться заключить имена файлов в кавычки путем передачи по каналу его через sed 's/^/"/;s/$/"/'
, который добавляет кавычки вначале и конец строки. Отметьте однако, это в этом случае Вы должны иметь:
Преимущество, что можно в значительной степени произвольно преобразовать вывод (например, когда Вы решаете не переименовать, а не удалить или когда необходимо лишить части вывода).
if [[ -o login ]]; then
echo "I'm a login shell"
fi
if [[ -o interactive ]]; then
echo "I'm interactive"
fi
[[ -o the-option ]]
возвращает true, если-опция установлена.
Можно также получить значения опций с $options
специальный ассоциативный массив, или путем выполнения set -o
.
Чтобы проверить, существует ли ssh-агент:
if [[ -w $SSH_AUTH_SOCK ]]; then
echo "there's one"
fi
В ksh
(и zsh
):
case $- in (*i*) echo interactive; esac
case $- in (*l*) echo login; esac
В bash
, это - путаница, Вам нужно:
case $- in *i*) echo interactive; esac # that should work in any Bourne/POSIX shell
case :$BASHOPTS: in (*:login_shell:*) echo login; esac
И $SHELLOPTS
содержит еще некоторые опции. Некоторые опции можно установить с set -<x>
, некоторые с set -o option
, некоторые с shopt -s option
.
-o
опции, но я думал, что они были опциями, которые были устанавливаемыми, чтобы переопределить значения по умолчанию т.е. вызвать поведение, вместо того, чтобы запросить фактическую ситуацию.Я неправ? – Geeb 24.01.2014, 13:24[[ -o opt ]]
проверки, еслиopt
установлен. Я не вижу, почему это сделало бы это только, когда опция установлена некоторый путь а не другой. – Stéphane Chazelas 24.01.2014, 14:10.zshrc
путем установкиinteractive
опция? – Geeb 24.01.2014, 14:38.zshrc
читается на запуске, когда оболочка является интерактивной. Это может быть считано кем-то выполнениеsource ~/.zshrc
. – Stéphane Chazelas 24.01.2014, 14:49login
опция в.zshrc
заставил бы все интерактивные оболочки, запущенные после этого изменения вести себя, как будто они были результатом входа в систему, правильно? т.е. поведение вызывается - по правде говоря, они не действительно оболочки входа в систему и только ведут себя как таковые, потому что им сказали быть так полномочиями установки опции? – Geeb 24.01.2014, 16:09