「[1] + did $scriptname」と「[1] 31303」を表示しない

「[1] + did $scriptname」と「[1] 31303」を表示しない

私の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'

おすすめ記事