私のmutt:のエイリアスを設定しましたalias mutt='$HOME/.mutt/run-notmuch-offlineimap & ; mutt'
。
ノート:私のエイリアスを次に変更するか、alias mutt='$HOME/.mutt/run-notmuch-offlineimap 2> /dev/null & ; mutt'
まったくalias mutt='$HOME/.mutt/run-notmuch-offlineimap 2>&1 >/dev/null & ; mutt'
同じ結果を生成します。
スクリプトはrun-notmuch-offlineimap
次のとおりです。
#!/usr/bin/env zsh
notmuch="$(which notmuch)"
$notmuch new --quiet
$notmuch tag +inbox -- "folder:dev/dev|INBOX or folder:pers/pers|INBOX"
$notmuch tag +sent -- "folder:dev/dev|Sent or folder:pers/pers|Sent"
$notmuch tag +drafts -- "folder:dev/dev|Drafts or folder:pers/pers|Sent"
$notmuch tag +github -- "folder:dev/dev|github and not tag:github"
# test if the offlineimap instance of account dev is already running
if [[ $(pgrep -f 'offlineimap.*dev.*') == "" ]]
then
offlineimap -c "$HOME/.fetch-send-mail/dev/dev.imap" -u quiet
fi
# test if the offlineimap instance of account dev is already running
if [[ $(pgrep -f 'offlineimap.*pers.*') == "" ]]
then
offlineimap -c "$HOME/.fetch-send-mail/pers/pers.imap" -u quiet
fi
(このスクリプトでbashを使用すると、結果はまったく同じです)
muttを起動すると、次のことが起こります。
~
$ mutt
[1] 31303
Mailbox is unchanged.
# some seconds afterwards:
~
$
[1] + done $HOME/.mutt/run-notmuch-offlineimap
~
「メールボックスが変更されていません」というメッセージはmutt自体からのものであるため、これは予想されます。しかし、[1]
メッセージが表示されないようにすることはできますか?たとえば、私がmuttを実行した場合は、次のように印刷する必要があります(他は何も印刷しません)。
~
$ mutt
Mailbox is unchanged.
~
$
どうすればいいですか?
ベストアンサー1
zshにある場合は、エイリアスを変更&!
して&
。否定するのコース。
alias mutt='$HOME/.mutt/run-notmuch-offlineimap &! mutt'
Bashにいる場合は、disown
コマンドの後に使用して同様の効果を得ることができますが、まだpidを一覧表示する最初のジョブ制御メッセージを受け取ります。
alias mutt='$HOME/.mutt/run-notmuch-offlineimap & disown; mutt'
サブシェルを使用すると、両方の状況を回避できます。
alias mutt='($HOME/.mutt/run-notmuch-offlineimap &); mutt'