Ini dapat dilakukan dengan perintah berikut (sebelum memulai mc):
export PROMPT_COMMAND="history -a; history -r"
Jika Anda ingin membuatnya permanen, maka Anda harus menambahkannya ke ~/.bashrc
Anda . Tapi itu akan membuat semua riwayat shell menjadi global, yang bukan yang terbaik. Jika Anda tidak menginginkan efek samping ini, baris berikut harus ditambahkan, bukan baris di atas:
alias mc='PROMPT_COMMAND="history -a; history -r" mc; history -r'
Penjelasan:
PROMPT_COMMAND
dieksekusi tepat sebelum bash menampilkan prompt. Bacaan lebih lanjut di sini.
history
harus dipanggil dengan parameter append, dan setelah itu dengan parameter read. Bacaan lebih lanjut di sini.
Untuk beberapa alasan, PROMPT_COMMAND
solusi dalam mc
alias, seperti yang disarankan oleh pengguna szkj, tidak berfungsi dengan baik untuk saya. Meskipun mempertahankan perintah yang dijalankan di subkulit MC, perintah yang dimasukkan sebelum memulai MC hilang setelah keluar.
Terakhir, saya menggunakan yang berikut di ~/.bashrc
, tanpa mc
alias. Tampaknya berfungsi dengan baik meskipun mc
menimpa $PROMPT_COMMAND
.
export HISTCONTROL=ignoreboth
shopt -s histappend
export PROMPT_COMMAND="history -a; history -c; history -r; $PROMPT_COMMAND"
Inilah yang saya dapatkan:
# echo "1: before starting MC. PROMPT_COMMAND=$PROMPT_COMMAND"
1: before starting MC. PROMPT_COMMAND=history -a; history -c; history -r;
# mc
# echo "2: Inside MC. PROMPT_COMMAND=$PROMPT_COMMAND"
2: Inside MC. PROMPT_COMMAND=pwd>&8;kill -STOP $$
# history | tail -3
3038 echo "1: before starting MC. PROMPT_COMMAND=$PROMPT_COMMAND"
3039 echo "2: Inside MC. PROMPT_COMMAND=$PROMPT_COMMAND"
3040 history | tail -3
# echo "3: Going to exit MC with F10."
3: Going to exit MC with F10.
# echo "4: Back in Bash after MC"
4: Back in Bash after MC
# history | tail -7
3038 echo "1: before starting MC. PROMPT_COMMAND=$PROMPT_COMMAND"
3039 echo "2: Inside MC. PROMPT_COMMAND=$PROMPT_COMMAND"
3040 history | tail -3
3041 echo "3: Going to exit MC with F10."
3042 mc
3043 echo "4: Back in Bash after MC"
3044 history | tail -7
Sistem saya adalah:
# cat /etc/debian_version
8.1
# bash --version | head -1
GNU bash, version 4.3.30(1)-release (x86_64-pc-linux-gnu)
# mc --version | head -1
GNU Midnight Commander 4.8.13
# uname -a
Linux afnet 3.16.0-4-amd64 #1 SMP Debian 3.16.7-ckt11-1+deb8u3 (2015-08-04) x86_64 GNU/Linux