[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] Changes to emacs/man/tramp.texi
From: |
Kai Großjohann |
Subject: |
[Emacs-diffs] Changes to emacs/man/tramp.texi |
Date: |
Sun, 20 Jul 2003 15:00:56 -0400 |
Index: emacs/man/tramp.texi
diff -c emacs/man/tramp.texi:1.22 emacs/man/tramp.texi:1.23
*** emacs/man/tramp.texi:1.22 Tue Jun 17 10:05:19 2003
--- emacs/man/tramp.texi Sun Jul 20 15:00:56 2003
***************
*** 1310,1315 ****
--- 1310,1360 ----
the variables @code{tramp-actions-before-shell} and
@code{tramp-multi-actions} (for multi-hop connections).
+ @item Non-Bourne commands in @file{.profile}
+
+ After logging in to the remote host, @tramp{} issues the command
+ @code{exec /bin/sh}. (Actually, the command is slightly different.)
+ When @code{/bin/sh} is executed, it reads some init files, such as
+ @file{~/.shrc} or @file{~/.profile}.
+
+ Now, some people have a login shell which is not @code{/bin/sh} but a
+ Bourne-ish shell such as bash or ksh. Some of these people might put
+ their shell setup into the files @code{~/.shrc} or @code{~/.profile}.
+ This way, it is possible for non-Bourne constructs to end up in those
+ files. Then, @code{exec /bin/sh} might cause the Bourne shell to barf
+ on those constructs.
+
+ As an example, imagine somebody putting @code{export FOO=bar} into the
+ file @file{~/.profile}. The standard Bourne shell does not understand
+ this syntax and will emit a syntax error when it reaches this line.
+
+ Another example is the tilde (@code{~}) character, say when adding
+ @file{~/bin} to @code{$PATH}. Many Bourne shells will not expand this
+ character, and since there is usually no directory whose name consists
+ of the single character tilde, strange things will happen.
+
+ What can you do about this?
+
+ Well, one possibility is to make sure that everything in @file{~/.shrc}
+ and @file{~/.profile} on all remote hosts is Bourne-compatible. In the
+ above example, instead of @code{export FOO=bar}, you might use
+ @code{FOO=bar; export FOO} instead.
+
+ The other possibility is to put your non-Bourne shell setup into some
+ other files. For example, bash reads the file @file{~/.bash_profile}
+ instead of @file{~/.profile}, if the former exists. So bash
+ aficionados just rename their @file{~/.profile} to
+ @file{~/.bash_profile} on all remote hosts, and Bob's your uncle.
+
+ The @tramp{} developers would like to circumvent this problem, so if you
+ have an idea about it, please tell us. However, we are afraid it is not
+ that simple: before saying @code{exec /bin/sh}, @tramp{} does not know
+ which kind of shell it might be talking to. It could be a Bourne-ish
+ shell like ksh or bash, or it could be a csh derivative like tcsh, or
+ it could be zsh, or even rc. If the shell is Bourne-ish already, then
+ it might be prudent to omit the @code{exec /bin/sh} step. But how to
+ find out if the shell is Bourne-ish?
+
@end table
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Emacs-diffs] Changes to emacs/man/tramp.texi,
Kai Großjohann <=