簡體   English   中英

在bash腳本中回顯變量時,SIGPIPE

[英]SIGPIPE when echoing variable inside bash script

我有一個在debian機器上運行的cronjob。 在腳本的某些時候,我通過

HOSTNAME=$( hostname -s | tr A-Z a-z )

然后,我將該值記錄到syslog中(這樣我就可以看到一切運行正常)

function log {
    # just echo it
    echo -n `date -u "+%s"`
    echo -n " "
    echo $1

    /usr/bin/logger -t $0 -- $1
}

log "Hostname: ${HOSTNAME}"

但是,在此框中,我收到了SIGPIPE。 在整個腳本中,這種情況會多次發生。 我已經困了SIGPIPE來確認是這種情況,但實際上想解決此問題。

有人可以告訴我什么可能導致SIGPIPE,以及如何解決該問題嗎? 我嘗試創建一個較小的測試腳本,但是該腳本的反應方式不同。

我的猜測:在cron環境中,PATH受限制,這意味着Shell可能無法找到主機名和/或tr 首先,找出主機名和tr的位置,並改用絕對路徑,例如:

HOSTNAME=$( /bin/hostname -s | /usr/bin/tr A-Z a-z )

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM