私はしばしば次のコマンドを入力する自分自身を見つけます。
sudo -i
cd workdir
スクリプトを作成し、名前を文字として指定したいと思います。たとえば、a
実行すると、a
上記の2つのコマンドを入力したのと同じ効果があります。具体的には、Windowsで「昇格された」プロンプトが表示され、指定されたフォルダにあります。
どうやってこれを達成できますか?
答え1
解決策があると思いますが、これにより複数のプロセスが生成されます。
#!/bin/bash
sudo -i bash -c 'cd /path/to/your/workdir && exec bash'
最初のプロセスはスクリプトを実行することによって生成され、2番目のプロセスは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#
ここではzshを使用しているため、矢印の付いた最初のコマンドは異なりますuser1
。user2