免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3858 | 回复: 8
打印 上一主题 下一主题

为什么我的SHELL提示符不正确 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-05-22 09:33 |只看该作者 |倒序浏览
通常,LINUX在启动文件系统后,会出现SHELL提示符。如“[root@CAD3000 /]# ”。但是,我自己做的文件系统,系统加载后,出现的提示符为“[\u@\h \w]\\$ ”我的profile文件内容如下:

  1. #!/bin/sh
  2. # System wide environment and startup programs, for login setup
  3. # Functions and aliases go in /etc/bashrc
  4. pathmunge () {
  5. if ! echo $PATH | /bin/egrep -q "(^|:)$1($|:)" ; then
  6.     if [ "$2" = "after" ] ; then
  7.        PATH=$PATH:$1
  8.     else
  9.        PATH=$1:$PATH
  10.     fi
  11. fi
  12. }
  13. PATH="/usr/local/bin:/usr/bin:/bin"
  14. EDITOR="/bin/vi"
  15. TERM="vt102"
  16. HOSTNAME=`/bin/hostname`
  17. HISTSIZE=100
  18. # set time zone
  19. if [ ! -e /etc/localtime ]; then
  20.         TZ="UTC"
  21.         export TZ
  22. fi
  23. # ksh workaround
  24. if [ -z "$EUID" -a -x /usr/bin/id ]; then
  25. EUID=`id -u`
  26. UID=`id -ru`
  27. fi
  28. # Path manipulation
  29. if [ "$EUID" = "0" ]; then
  30. pathmunge /sbin
  31. pathmunge /usr/sbin
  32. pathmunge /usr/local/sbin
  33. fi
  34. # works for bash and ash
  35. if [ "$PS1" ]; then
  36. PS1='[\u@\h \w]\\$ '
  37. fi
  38. # No core files by default
  39. ulimit -S -c 0 > /dev/null 2>&1
  40. if [ -x /usr/bin/id ]; then
  41. USER="`id -un`"
  42. LOGNAME=$USER
  43. MAIL="/var/spool/mail/$USER"
  44. fi
  45. if [ -z "$INPUTRC" -a ! -f "$HOME/.inputrc" ]; then
  46.     INPUTRC=/etc/inputrc
  47. fi
  48. export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE INPUTRC EDITOR TERM
  49. for i in /etc/profile.d/*.sh ; do
  50.     if [ -r "$i" ]; then
  51.      . $i
  52.     fi
  53. done
  54. unset i
  55. unset pathmunge
  56. if [ -x /etc/rc.d/rc.boot ]; then
  57. . /etc/rc.d/rc.boot
  58. fi
复制代码


现在的问题是,我在其中加入了PS1的值,为什么PS1中的用户名,主机名等变量不会随着登录用户改变呢?要想让SHELL提示符回到正常的状态,如何修改?谢谢!

[ 本帖最后由 yidou 于 2009-5-22 09:39 编辑 ]

论坛徽章:
5
2 [报告]
发表于 2009-05-22 09:40 |只看该作者
楼上的代码, 以后请用 "[code][/code]" 包含起来.

论坛徽章:
0
3 [报告]
发表于 2009-05-22 10:08 |只看该作者
bash 还是 busybox 的 shell ? busybox 的几个shell 也不一样。

论坛徽章:
0
4 [报告]
发表于 2009-05-22 10:21 |只看该作者
谢谢,我在busybox编译时选择的是shell--->ash。能说详细点吗?

论坛徽章:
381
CU十二周年纪念徽章
日期:2014-01-04 22:46:58CU大牛徽章
日期:2013-03-13 15:32:35CU大牛徽章
日期:2013-03-13 15:38:15CU大牛徽章
日期:2013-03-13 15:38:52CU大牛徽章
日期:2013-03-14 14:08:55CU大牛徽章
日期:2013-04-17 11:17:19CU大牛徽章
日期:2013-04-17 11:17:32CU大牛徽章
日期:2013-04-17 11:17:37CU大牛徽章
日期:2013-04-17 11:17:42CU大牛徽章
日期:2013-04-17 11:17:47CU大牛徽章
日期:2013-04-17 11:17:52CU大牛徽章
日期:2013-04-17 11:17:56
5 [报告]
发表于 2009-05-22 10:22 |只看该作者
用bash吧

论坛徽章:
0
6 [报告]
发表于 2009-05-22 10:26 |只看该作者
你的意思是在编译buxybox时,选择“SHELL--->NONE”,然后再自己做个BASH?可是BASH好像比较大,我的空间有限呀!

论坛徽章:
0
7 [报告]
发表于 2009-05-22 11:41 |只看该作者
原帖由 chenyx 于 2009-5-22 10:22 发表
用bash吧


ASH也支持的吧?

BusyBox v1.1.2 (2009.03.18-12:41+0000) Built-in shell (ash)
Enter 'help' for a list of built-in commands.

Welcome to Linux.
None of nfsroot found in cmdline.
~ $ cd /home/
/home $ echo $PS1
\w \$
/home $ PS1='[\u@\h \w]\\$ '
[root@(none) /home]#
[root@(none) /home]#

论坛徽章:
0
8 [报告]
发表于 2009-05-22 13:54 |只看该作者
我的PS1已经是你你将要设置的那样了,还是没有用
[\u@\h \w]\\$ cd home/
[\u@\h \w]\\$ ls
[\u@\h \w]\\$ echo $PS1
[\u@\h \w]\\$
[\u@\h \w]\\$ PS1='[\u@\h \w]\\$'
[\u@\h \w]\\$





难道是我的profile文件没有执行?

[ 本帖最后由 qchwu 于 2009-5-22 13:58 编辑 ]

论坛徽章:
0
9 [报告]
发表于 2009-05-22 16:58 |只看该作者
原帖由 qchwu 于 2009-5-22 13:54 发表
我的PS1已经是你你将要设置的那样了,还是没有用
[\u@\h \w]\\$ cd home/
[\u@\h \w]\\$ ls
[\u@\h \w]\\$ echo $PS1
[\u@\h \w]\\$
[\u@\h \w]\\$ PS1='[\u@\h \w]\\$'
[\u@\h \w]\\$




难道是我 ...


没碰到过这种情况,说实话我也不在意PS1到底长啥样!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP