[arch-general] Start a daemon, show a syntax error
郑文辉(Techlive Zheng)
techlivezheng at gmail.com
Tue Mar 20 06:47:13 EDT 2012
2012/3/20 Tom Gundersen <teg at jklm.no>:
> 2012/3/20 郑文辉(Techlive Zheng) <techlivezheng at gmail.com>:
>> But 'ls -l /bin/sh', shows that sh is a symlink to bash, but why it
>> behaves so differently?
>>
>> lrwxrwxrwx 1 root root 4 2011-11-23 14:08 /bin/sh -> bash
>
> When called as "/bin/sh", bash works in compatibility mode.
> Initscripts only support bash being called as "bash".
>
> To find out more, Google is your friend :-)
>
> -t
Thank you, I thought it is related with this issue, so just ask here,
next time, I will do my research first.
I think I found the cause of my problem, it turns out I am using an
very old /etc/profile. I move the /etc/profile to /etc/profile.bak and
reinstall the filesystem package, then I diff the /etc/profile and
/etc/profile.bak. I found my previous version of /etc/profile using
the some sort of guess mechanism to find the shell that is using and
'sh' is the default value of $SHELL which may cause the last line of
'source /etc/bash-completion' running in compatibility mode.
Here is the diff output.
diff /etc/profile.bak /etc/profile
2,25d1
< #
< # This file is intended to be used for ALL common
< # Bourne-compatible shells. Shell specifics should be
< # handled in /etc/profile.$SHELL where $SHELL is the name
< # of the binary being run (discounting symlinks)
< #
< # Sections taken from SuSe's /etc/profile
< # Note the explicit use of 'test' to cover all bases
< # and potentially incompatible shells
<
< #Determine our shell without using $SHELL, which may lie
< shell="sh"
< if test -f /proc/mounts; then
< case $(/bin/ls -l /proc/$$/exe) in
< *bash) shell=bash ;;
< *dash) shell=dash ;;
< *ash) shell=ash ;;
< *ksh) shell=ksh ;;
< *zsh) shell=zsh ;;
< esac
< fi
<
< # Load shell specific profile settings
< test -f "/etc/profile.$shell" && . "/etc/profile.$shell"
31c7
< PATH="/bin:/usr/bin:/sbin:/usr/sbin"
---
> PATH="/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin"
34,46d9
< # Export default pkg-config path
< PKG_CONFIG_PATH="/usr/lib/pkgconfig"
< export PKG_CONFIG_PATH
<
< # Some readline stuff that is fairly common
< HISTSIZE=1000
< HISTCONTROL="erasedups"
<
< INPUTRC="/etc/inputrc"
< LESS="-R"
<
< export HISTSIZE HISTCONTROL INPUTRC LESS
<
50c13
< test -x $profile && . $profile
---
> test -r "$profile" && . "$profile"
65,66d27
<
< source /etc/bash_completion
More information about the arch-general
mailing list