From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Date: Tue, 5 Nov 2002 19:39:36 +0300 (MSK) From: Ivan Zakharyaschev X-X-Sender: ivan@arrakis.zephyrous To: ALT Devel discussion list Subject: Re: [devel] Re: I: console-tools-0.2.3-ipl14.1mdk In-Reply-To: <20021105091441.GD14323@basalt.office.altlinux.ru> Message-ID: X-Mailer: try to guess MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=koi8-r Content-Transfer-Encoding: 8BIT Sender: devel-admin@altlinux.ru Errors-To: devel-admin@altlinux.ru X-BeenThere: devel@altlinux.ru X-Mailman-Version: 2.0.9 Precedence: bulk Reply-To: devel@altlinux.ru List-Unsubscribe: , List-Id: List-Post: List-Help: List-Subscribe: , List-Archive: Archived-At: List-Archive: List-Post: Hello! On Tue, 5 Nov 2002, Dmitry V. Levin wrote: > > А чем твоя проверка на интерактивность лучше PS1 (PS1 я нашёл в > info > > bash и успокоился, уверенный в том, что это корректно). > > Такая же проверка есть в /etc/bashrc. Я ещё раз заглянул на ту же страницу -- там написаны оба варианта, так что, наверное, больщой разницы нет. $- немного понятнее. В скрипте Mandrake есть ещё такая проверка: # bash sets the $- variable, and puts 'c' in it if it is a non-interactive # shell # For other shells, I assume $- is not available if [ "$SHELL" = "/bin/bash" ]; then if echo $- | grep 'c' >/dev/null; then return #non-interactive fi fi Есть ли какие-нибудь соображения, нужна ли она в дополнение к уже имеющейся? i и c друг друга не исключают: $ sh -ic 'echo $-' himBc А вот отрывок из bash.info, про который я говорил: Is this Shell Interactive? -------------------------- To determine within a startup script whether or not Bash is running interactively, test the value of the `-' special parameter. It contains `i' when the shell is interactive. For example: case "$-" in *i*) echo This shell is interactive ;; *) echo This shell is not interactive ;; esac Alternatively, startup scripts may examine the variable `PS1'; it is unset in non-interactive shells, and set in interactive shells. Thus: if [ -z "$PS1" ]; then echo This shell is not interactive else echo This shell is interactive fi -- С наилучшими пожеланиями, Иван Захарьящев, Москва