ฉันใช้คำตอบใน/unix//a/1292/41729เพื่อเปิดใช้งานประวัติการแชร์แบบเรียลไทม์ระหว่างเทอร์มินัลทุบตีที่แยกต่างหาก ตามที่อธิบายไว้ในคำตอบข้างต้นสิ่งนี้สามารถทำได้โดยการเพิ่ม:
# avoid duplicates..
export HISTCONTROL=ignoredups:erasedups
# append history entries..
shopt -s histappend
# After each command, save and reload history
export PROMPT_COMMAND="history -a; history -c; history -r; $PROMPT_COMMAND"
สิ่งนี้ใช้ได้ดีถ้าเปลือก bash นั้นแยกจากกัน (เช่นเปิดเทอร์มินัล bash ที่แตกต่างกันโดยใช้CTRL+ALT+T
อย่างไรก็ตามมันใช้ไม่ได้ถ้าฉันใช้tabs
(จากเทอร์มินัลเปิด `CTRL + SHIFT + T) แทนที่จะเป็นวินโดว์ใหม่ ฉันสามารถแบ่งปันประวัติทุบตีในแท็บต่างๆได้หรือไม่
UPDATE:ฉันสังเกตเห็นพฤติกรรมที่ผิดปกติ: ถ้าฉันพิมพ์CTRL+C
คำสั่งสุดท้ายที่พิมพ์ในเทอร์มินัลอื่น ๆ (ทั้งแท็บหรือไม่) จะแสดงขึ้นอย่างถูกต้อง มันเหมือนกับว่า CTRL + C บังคับให้ล้างประวัติเพื่อให้มีการแชร์อย่างถูกต้อง
ตัวอย่างผลลัพธ์ (T1 หมายถึงเทอร์มินัล 1 และเทอร์มินัล 2 2):
T1:
ls -lah <enter>
# the list of files and directory is shown
T2:
cd Documents <enter>
T1:
<up> (i.e. I press the up arrow)
ls -lah #i.e the last command in terminal 1 is shown rather than the last of terminal 2
^C (i.e. I press CTRL+C)
<up>
cd Documents #the last command issued in terminal 2 is correctly displayed
หวังว่านี่จะมีคำใบ้ใด ๆ !
~.bashrc
ไฟล์ของคุณหรือไม่ ในด้านการส่งออกตัวแปรเหล่านั้นไม่มีจุดหมาย เพียงแค่เสียพื้นที่สิ่งแวดล้อม