我经常发现自己输入以下命令:
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,第一个带有箭头的命令是不同的。