1

我不是 Solaris 专家,我正在尝试创建一个 shell 脚本,它将我的提示更改为 PWD,将 ksh 更改为 bash,我有这个:

PS1='$PWD $' exec bash --noprofile --rcfile /dev/null

或者

PS1='\w $' 执行 bash --noprofile --rcfile /dev/null

他们两个都不是从 sh 工作的。如果我从命令行添加它们,那么我的 bash 第一次出现在提示符上,第二次 PS1='$PWD $' 启动并且我的提示符发生变化。

首先,为什么 PS1='$PWD $' 不能从 shell script 工作。以及为什么我必须从命令行运行命令两次才能获得我的结果。

此外,在我的 export/home/syed/ 目录中有三个文件 local.login、local.profile 和 local.cshrc。有什么方法可以使用它们,当我登录时,我不需要运行我的 shell 脚本,登录后我会得到 bash shell 和我想要的提示(我要求太多了,我不喜欢 ksh没有任何功能,如向上箭头召回最后一个命令和选项卡自动完成功能)

谢谢赛义德...

4

3 回答 3

1

当您exec在脚本中时,脚本是被替换的,而不是父 shell。

尝试采购脚本而不是运行它。

此外,在 Solaris 中,您可以使用passwd -e更改登录 shell。

您可能能够符号链接~/.profile到您现有的~/local.profile(或类似的)。请注意,这.cshrc是针对 C Shell 的,与 ksh 或 Bash 不兼容。

于 2012-03-28T18:51:23.497 回答
1

如果您希望您的默认 shell 是 bash,请在 /etc/passwd 中更改它

于 2012-03-28T15:08:21.857 回答
0

当您execbash 时,它会从头开始设置自己的环境。传递它一个--rcfile包含您希望它继承的设置。

于 2012-03-28T15:15:42.400 回答