su - 在 shell 脚本中执行 su 命令后自动更改目录

su - 在 shell 脚本中执行 su 命令后自动更改目录

我不熟悉 shell 脚本,但我试图实现至少这个脚本,但我的问题是,一旦超级用户 rt 登录完成,它就会带我到这个

[rt@superuser root]$

我不想读第二行,而是想至少实现这样的目标

[rt@superuser etc]$

etc是我需要的目录而不是根目录。下面是我的 shell 脚本中的命令行

#!/bin/sh  
su rt  
PATH='/usr/local/rt/etc'  
cd ${PATH}

我如何编写一个需要先成为超级用户然后在以超级用户身份登录后自动更改其目录的 shell 脚本。

答案1

不要在脚本中加入 su。su 之后再运行脚本...

#!/bin/sh
RT_ETC=/usr/local/rt/etc
cd ${RT_ETC}

$ su rt
[rt@superuser root]$ /path/to/my/script

当然,如果您的目标只是在成为 rt 用户时进入 /usr/local/rt/etc 目录,只需将 cd 添加到 .bashrc,它将在您登录并获取 shell 配置文件时发生(即 su - rt)

另外,我建议不要像你那样使用 PATH。PATH 是一个具有非常具体含义的系统变量。最好不要这样乱用它。最好使用另一个变量……即 RT_ETC

仅供参考-su 是“切换用户”而不是“超级用户”

相关内容