【问题标题】:PS1='$PWD $ ' doesnt work from shell scriptPS1='$PWD $' 在 shell 脚本中不起作用
【发布时间】:2012-03-28 10:22:38
【问题描述】:

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

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

PS1='\w $' exec 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,因为它没有任何功能,例如向上箭头召回最后一个命令和选项卡自动完成功能)

谢谢 赛义德...

【问题讨论】:

    标签: bash shell solaris-10


    【解决方案1】:

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

    尝试获取脚本而不是运行它。

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

    您可以将~/.profile 符号链接到您现有的~/local.profile(或类似名称)。请注意,.cshrc 用于 C Shell,与 ksh 或 Bash 不兼容。

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        【解决方案3】:

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2017-06-21
          • 2013-12-03
          • 1970-01-01
          • 2015-01-07
          • 2018-09-04
          • 1970-01-01
          • 2013-04-29
          相关资源
          最近更新 更多