This is an updated version of: http://cygwin.com/ml/cygwin/2011-04/msg00020.html Uses the detection method suggested here: http://cygwin.com/ml/cygwin/2011-04/msg00372.html
Tested with bash, dash, mksh, posh, and zsh (with symlink /etc/zprofile -> profile) on cygwin 1.7.11-1 and Win7 x64.
OT: posh -l does not execute /etc/profile by default. Bug? Christian
diff -rup base-files-4.0-9.orig/etc/defaults/etc/bash.bashrc base-files-4.0-9/etc/defaults/etc/bash.bashrc --- base-files-4.0-9.orig/etc/defaults/etc/bash.bashrc 2012-02-12 22:13:04.000000000 +0100 +++ base-files-4.0-9/etc/defaults/etc/bash.bashrc 2012-02-27 16:04:40.834657800 +0100 @@ -24,7 +24,7 @@ [[ "$-" != *i* ]] && return # Set a default prompt of: user@host and current_directory -PS1='\[\e]0;\w\a\]\n\[\e[32m\]\u@\h \[\e[33m\]\w\[\e[0m\]\n\$ ' +PS1='\[\e]0;\w\a\]\n\[\e[32m\]\u@\h \[\e[33m\]\w\[\e[0m\]\n'"${PS1a:-\\\$ }" # Uncomment to use the terminal colours set in DIR_COLORS # eval "$(dircolors -b /etc/DIR_COLORS)" diff -rup base-files-4.0-9.orig/etc/defaults/etc/profile base-files-4.0-9/etc/defaults/etc/profile --- base-files-4.0-9.orig/etc/defaults/etc/profile 2012-02-12 22:13:04.000000000 +0100 +++ base-files-4.0-9/etc/defaults/etc/profile 2012-02-27 16:07:51.212574600 +0100 @@ -100,6 +100,12 @@ else cd "${HOME}" || echo "WARNING: Failed attempt to cd into ${HOME}!" fi +# Set PS1a if user has admin rights +unset PS1a +if [ -r /proc/registry/HKEY_LOCAL_MACHINE/SECURITY ]; then + PS1a="# " +fi + # Shell dependent settings profile_d () { @@ -116,19 +122,20 @@ if [ ! "x${BASH_VERSION}" = "x" ]; then elif [ ! "x${KSH_VERSION}" = "x" ]; then typeset -l HOSTNAME="$(/usr/bin/hostname)" profile_d sh - PS1=$(print '\033]0;${PWD}\n\033[32m${USER}@${HOSTNAME} \033[33m${PWD/${HOME}/~}\033[0m\n$ ') + PS1=$(print '\033]0;${PWD}\n\033[32m${USER}@${HOSTNAME} \033[33m${PWD/${HOME}/~}\033[0m\n'"${PS1a:-\$ }") elif [ ! "x${ZSH_VERSION}" = "x" ]; then HOSTNAME="$(/usr/bin/hostname)" profile_d zsh - PS1='(%n@%m)[%h] %~ %% ' + PS1='(%n@%m)[%h] %~ '"${PS1a:-%% }" elif [ ! "x${POSH_VERSION}" = "x" ]; then HOSTNAME="$(/usr/bin/hostname)" - PS1="$ " + PS1="${PS1a:-\$ }" else HOSTNAME="$(/usr/bin/hostname)" profile_d sh - PS1="$ " + PS1="${PS1a:-\$ }" fi +unset PS1a export PATH MANPATH INFOPATH USER TMP TEMP PRINTER HOSTNAME PS1 SHELL tmp temp
-- Problem reports: http://cygwin.com/problems.html FAQ: http://cygwin.com/faq/ Documentation: http://cygwin.com/docs.html Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple