From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Sebastian Tennant Newsgroups: gmane.emacs.help Subject: Re: Shell aliases as shell-commands Date: Wed, 21 Jan 2009 17:07:14 +0000 Message-ID: References: NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Trace: ger.gmane.org 1232558123 7174 80.91.229.12 (21 Jan 2009 17:15:23 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Wed, 21 Jan 2009 17:15:23 +0000 (UTC) To: help-gnu-emacs@gnu.org Original-X-From: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Wed Jan 21 18:16:36 2009 Return-path: Envelope-to: geh-help-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([199.232.76.165]) by lo.gmane.org with esmtp (Exim 4.50) id 1LPggg-0005ee-PG for geh-help-gnu-emacs@m.gmane.org; Wed, 21 Jan 2009 18:16:23 +0100 Original-Received: from localhost ([127.0.0.1]:36485 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1LPgfP-00011f-Aq for geh-help-gnu-emacs@m.gmane.org; Wed, 21 Jan 2009 12:15:03 -0500 Original-Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1LPgWR-0003Ko-Od for help-gnu-emacs@gnu.org; Wed, 21 Jan 2009 12:05:47 -0500 Original-Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1LPgWQ-0003Ja-4L for help-gnu-emacs@gnu.org; Wed, 21 Jan 2009 12:05:47 -0500 Original-Received: from [199.232.76.173] (port=32927 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1LPgWP-0003JU-VQ for help-gnu-emacs@gnu.org; Wed, 21 Jan 2009 12:05:46 -0500 Original-Received: from main.gmane.org ([80.91.229.2]:36148 helo=ciao.gmane.org) by monty-python.gnu.org with esmtps (TLS-1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.60) (envelope-from ) id 1LPgWP-0004ad-9w for help-gnu-emacs@gnu.org; Wed, 21 Jan 2009 12:05:45 -0500 Original-Received: from list by ciao.gmane.org with local (Exim 4.43) id 1LPgWK-00058M-Iy for help-gnu-emacs@gnu.org; Wed, 21 Jan 2009 17:05:41 +0000 Original-Received: from vps203.linuxvps.org ([91.186.7.203]) by main.gmane.org with esmtp (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Wed, 21 Jan 2009 17:05:40 +0000 Original-Received: from sebyte by vps203.linuxvps.org with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Wed, 21 Jan 2009 17:05:40 +0000 X-Injected-Via-Gmane: http://gmane.org/ Original-Lines: 38 Original-X-Complaints-To: usenet@ger.gmane.org X-Gmane-NNTP-Posting-Host: vps203.linuxvps.org User-Agent: Gnus/5.110011 (No Gnus v0.11) Emacs/22.2 (gnu/linux) Cancel-Lock: sha1:x6f3wIewkI+w8njbzgjvh7dNPcg= X-detected-operating-system: by monty-python.gnu.org: GNU/Linux 2.6, seldom 2.4 (older, 4) X-BeenThere: help-gnu-emacs@gnu.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Users list for the GNU Emacs text editor List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Original-Sender: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Errors-To: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.help:61533 Archived-At: Quoth Peter Dyballa : > Am 21.01.2009 um 16:26 schrieb Sebastian Tennant: > >>> * In your emacs config (.emacs): (setenv "BASH_ENV" "~/.bashrc") >>> This tells emacs that non-interactive bash subprocesses should >>> load .bashrc. >> >> Damn that's a good tip. Guess I should tell the folks over at >> emacs.sources... > > Not that fast, Sebastian! The solution with BASH_ENV will introduce > problems with non-interactive bash shell scripts! I'm not sure what you mean by non-interactive [...] scripts? `BASH_ENV' If this variable is set when Bash is invoked to execute a shell script, its value is expanded and used as the name of a startup file to read before executing the script. If people set this variable, they can't complain if it then causes them problems. After all, it's simply doing what it's designed to do! > The solution I suggested is valid only inside GNU Emacs; this is the > proper way. Forgive me, but I thought I'd explained why your solution wasn't exactly a solution. The variable shell-command-switch can only hold a single switch and we need to call bash with two switches; -i _and_ -c if we want shell-command to have access to aliases (and functions). This is why I went ahead and wrote interactive-shell-command (essentially a simpler version of shell-command that calls shell-file-name (bash) with both switches. Sebastian