私はサブシェルでbashを実行したいと思い、ユーザーがサブシェルから出るときに他のコマンド(ログをファイルに保存するなど)を実行したいと思います。
このような:
実行.sh:
#!/bin/bash
function save_information_to_file()
{
echo "${date} ${time} new bash subshell ended !"
}
# Some commands etc.
env PS1='SubShell:' bash --rcfile /home/username/.bashrc
if [ user_logout_from_subshell ]
then
save_information_to_file()
fi;
実装する:
user: ./run.sh
2016-08-12 14:55:13 new bash subshell started...
SubShell: echo "wow..."
wow...
SubShell: pwd
/home/username
SubShell: cat user.log
2016-08-11 17:54:32 bash started
2016-08-11 17:56:14 bash ended
2016-08-11 18:23:18 bash started
2016-08-11 18:39:30 bash ended
SubShell: exit
exit
2016-08-12 14:59:41 new bash subshell ended !
user:
シャットダウン時に実行する必要があるファイルパスでbashを実行する方法は?
ベストアンサー1
特別なスキルは必要ありません。これで十分です。
#!/bin/bash
env PS1='SubShell:' bash --rcfile /home/username/.bashrc
echo Subshell exited. Now doing something...
サブシェルはメイン端末で実行されます。デフォルトのスクリプトは、追加のコマンドなしで完了するまで待ちます。
(シェルでこれを設定する方法がわかりませんPS1
。サブシェルBashが起動すると上書きされるようです。)