运行 sudo、更改目录、停留在 sudo 中、脚本完成后停留在目录中

运行 sudo、更改目录、停留在 sudo 中、脚本完成后停留在目录中

我经常发现自己输入以下命令:

sudo -i
cd workdir

我想创建一个脚本并将其命名为一个字母。例如a,当我运行时,a效果与输入上述两个命令相同。特别是:我处于 Windows 中所谓的“提升”提示符处,并且位于指定的文件夹中。

我该如何实现这一目标?

答案1

我想我有一个解决方案,但它会创建多个进程。

#!/bin/bash    
sudo -i bash -c 'cd /path/to/your/workdir && exec bash'

第一个进程将通过运行脚本创建,第二个进程将用于运行 bash sudo -i(我不确定这一点),然后exec bash将创建另一个单独的进程,它将为您提供具有提升权限的所需工作目录。

除了最后一个 grep bash 进程之外,所有这些进程都是使用这个脚本创建的。如果你想要有这么多的进程,你可以使用这个解决方案。

➜  ~ ./test.sh
[sudo] password for user1: 
root@mycomputer:/home/user2# ps -aux | grep bash
user1   12875  0.0  0.0   9972  3584 pts/0    S+   18:05   0:00 /bin/bash ./test.sh
root       12876  0.0  0.0  14348  6272 pts/0    S+   18:05   0:00 sudo -i bash -c cd /home/user2 && exec bash
root       12877  0.0  0.0  14348  2380 pts/1    Ss   18:05   0:00 sudo -i bash -c cd /home/user2 && exec bash
root       12878  0.0  0.0  10236  4224 pts/1    S    18:05   0:00 bash
root       12892  0.0  0.0   9080  2560 pts/1    S+   18:05   0:00 grep --color=auto bash
root@mycomputer:/home/user2# 

在这里,我运行命令 asuser1并 cd 到user2.由于我使用 zsh,第一个带有箭头的命令是不同的。

相关内容