From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.2.3 (2007-08-08) on sa.int.altlinux.org X-Spam-Level: X-Spam-Status: No, score=-1.4 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.2.3 Date: Thu, 17 Jan 2008 21:43:44 +0200 From: Michael Shigorin To: sysadmins@lists.altlinux.org Message-ID: <20080117194344.GN7275@osdn.org.ua> Mail-Followup-To: sysadmins@lists.altlinux.org Mime-Version: 1.0 Content-Type: text/plain; charset=koi8-r Content-Disposition: inline Content-Transfer-Encoding: 8bit User-Agent: Mutt/1.4.2.1i Subject: [Sysadmins] bash | read X-BeenThere: sysadmins@lists.altlinux.org X-Mailman-Version: 2.1.9 Precedence: list Reply-To: shigorin@gmail.com, ALT Linux sysadmin discuss List-Id: ALT Linux sysadmin discuss List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 17 Jan 2008 19:43:45 -0000 Archived-At: List-Archive: Здравствуйте. Хозяйке на заметку (спасибо raorn@ за снятие с ручника насчёт subshell): $ zsh $ echo test | read a; echo $a test $ bash $ echo test | read a; echo $a $ echo test | ( read a; echo $a ) test $ При этом что-нить вроде такого работает, как ожидается: | while read first second junk; do # something with $first (first IFS-delimited word) # ...and with $second too... # the rest of the line goes to $junk done -- именно потому, что тут-то всё выполняется в одном сабшелле ;) А, и ещё: $ echo test:best | ( IFS=: read a b; echo $a/$b ) test/best -- ---- WBR, Michael Shigorin ------ Linux.Kiev http://www.linux.kiev.ua/