最後の X (20) コマンドを画面に表示する GeekTool 用のスクリプトを作成しようとしています。
ファイルを表示するか、シェル コマンドの出力を使用するか (推奨) を選択できます。
問題は、スクリプトからコマンドを実行すると~/bin/update_history_file.sh:fc:5: no such event: 0
エラーが発生することです。
私のスクリプトファイルは次のとおりです:
#!/bin/zsh --login
#history | tail -n 25 > /tmp/history.txt
export HISTFILE=~/.zsh_history
fc -l -20 -1
シェルから実行するとコマンドfc
は機能しますが、スクリプトから実行すると失敗します。履歴ファイルを読み取れないことと関係があると思いますが、確認されていません。
.zsh_history
ZSH 拡張履歴を使用しており、メタデータが埋め込まれているため、ファイルを直接使用することはできません。
答え1
履歴ファイルを強制的に読み取るには を追加しfc -R
、それを削除する必要があります-1
#!/bin/zsh --login
#history | tail -n 25 > /tmp/history.txt
export HISTFILE=~/.zsh_history
fc -R
fc -l -20