หากคุณต้องการใช้เอาต์พุตของhistory
คำสั่งจากเซสชันเชลล์ที่แอ็คทีฟในสคริปต์คุณสามารถใช้นามแฝงเพื่อรันคำสั่งก่อน จากนั้นในนามแฝงเดียวกันคุณสามารถเรียกส่วนที่เหลือของสคริปต์ ด้วยการกำหนดค่าดังกล่าวคุณสามารถบรรลุผลลัพธ์เป็นหลักเหมือนกับการมีhistory
คำสั่งในสคริปต์จริง
ตัวอย่างเช่นคุณสามารถสร้างนามแฝงเช่นนี้โดยสมมติว่าชื่อของสคริปต์คือ script.sh:
alias hy_tmp='history | tail -100 > /tmp/history.log ; bash /patch/to/script.sh'
และเปลี่ยนสคริปต์เป็น:
#!/bin/bash
cd /tmp
uuencode history.log history.txt | mail -s "History log of server" hello@hel.com
ฉันพบคำถามนี้ในขณะที่เขียนกระบวนการเพื่อรวมจัดเรียงและซิงโครไนซ์~/bash_history
ไฟล์ในคอมพิวเตอร์สองเครื่องมันจะง่ายต่อการค้นหาคำสั่งที่ฉันเคยใช้ในอดีต
การอัปเดตไฟล์ประวัติสะสมของฉันนั้นยุ่งยากน้อยกว่ามากโดยไม่ต้องเข้าสู่เชลล์ใหม่ให้มี ~/bash_history
อัปเดต สำหรับการตรวจสอบเซิร์ฟเวอร์จะเห็นได้ชัดว่าไม่ได้ผลดังที่กล่าวไว้ในคำตอบอื่น ๆ
การใช้งานของฉันโดยเฉพาะคือ:
alias hbye='history | cut -c 8- > /home/chris/.bash_history_c; bash /hby.sh
สคริปต์hby.sh
จะดึงรายการที่ไม่ซ้ำกันทั้งหมดจาก~/.bash_history*
ไฟล์ทั้งหมด
histtest.sh: 5: set: Illegal option -o history