我有一段時間來標準化我的提示,我已經爲cygwin安裝了不同的shell。在cygwin中跨殼標準化提示
安裝炮彈:
- 慶典(默認登錄shell)
- SH
- CSH(tcsh的,實際上)
- KSH
- zsh的
我的提示是跨越慶典,CSH,並的zsh規範,但我不能讓SH船上和KSH。
我期待所有的炮彈使用的提示是類似以下內容:
20121216 15:18:04 [shell] # date and time in yellow, shell in red
[email protected] pwd # [email protected] in green, pwd in yellow
$ # white
我已經把它設成我想爲慶典在/etc/profile
以下行的方式:
PS1="\[\e]0;\w\a\]\n\[\e[33m\]\D{%Y%m%d %H:%M:%S} \[\e[31m\][bash]\n\[\e[32m\]\[email protected]\h \[\e[33m\]\w\[\e[0m\]\n\$ "
而且我已經得到了它與下面的行.tcshrc
設置CSH:
set prompt="\n%{\033[33m%}%Y%W%D %P %{\033[31m%}[csh]\n%{\033[32m%}%[email protected]%M %{\033[33m%}%~\n%{\033[0m%}$ "
而且我已經得到了它具有以下行.zshrc
設置的zsh:
PROMPT="
%{$fg[yellow]%}%D{%Y%m%d} %* %{$fg[red]%}[zsh]%{$reset_color%}
%{$fg[green]%}%[email protected]%m %{$reset_color%}%{$fg[yellow]%}%~%{$reset_color%}
$ "
但我似乎不能設置默認提示SH或KSH任何地方。我可以打開他們兩個並手動設置PS1="$ "
,但我不能讓我自己設置自動設置。該SH提示符看起來等同於慶典提示,以及KSH提示是亂碼(BC它不喜歡PS1的語法,它的從慶典繼承,我認爲)。
事情我已經嘗試過失敗:
- 在
/etc/profile
設置PS1(在一個case語句讀取來自echo $0
殼 名稱).kshrc
- 設置PS1
- 設置PS1在
.shrc
- 設置PS1在
.sh_profile
- 設置PS1在
.profile
似乎cygwin的就是不執行,當我推出這些炮彈的一個上面列出的文件。請注意,我只能從bash以內發射這些炮彈。
任何想法? (對不起,我只是想徹底。)
不再有'sh'這樣的東西了。它曾經是指Bourne Shell的原始版本,但現在已經與其他一些最小的特性shell(如'ash','bash'或'dash')相鏈接。它沒有你需要的功能 - 你可以嘗試從另一個shell中設置PS1,但它不會跟蹤時間,也不會跟蹤shell的工作目錄。 –
'ksh'可以用'PS1 ='$ PWD $''跟蹤當前目錄 - 使用單引號推遲'$ PWD'的擴展,直到評估「$ PS1」。 'ksh'的原始文檔有添加日期和時間的黑客,但它仍然是一個(聰明的)黑客攻擊。 bash轉義序列在這裏沒有幫助。 –
感謝那些信息,Henk。但我想我真正要問的是我在哪裏設置'ksh'中的默認提示? – nullrevolution