2017-09-07 70 views
0

我正在創建一個shell腳本以在我的覆盆子pi上運行。一路上,我試圖簡化一些重複的代碼,我想爲下面的whiptail函數打包。如何從Whiptail返回值--yesno

function yesno() { 
    answer=$(whiptail --yesno "$1" 0 0 3>&1 1>&2 2>&3) 
    echo $answer 
} 

此函數不迴應任何內容,我想知道我的語法是否是錯誤的。在我的終端中輸入yesno "Your question"時,該功能會觸發。

也回顯$?沒有幫助,因爲它似乎沒有捕獲任何數據時,不使用return函數。

試圖使用return時出現錯誤,說我需要返回一個整數。

我已經成功在if聲明運行該功能,並確信它沒有返回一個0或1

if whiptail --yesno "Are you sure you want to clear all SSH keys from the list?" 0 0; then 
    # Do stuff 
fi 

任何人知道如何倒--yesno鞭尾函數I的輸出已經顯示爲一個變量?

回答

0

也許你的意思是像

#!/bin/bash 
function yesno() { 
    answer=$(whiptail --yesno "$1" 0 0 3>&1 1>&2 2>&3; echo $?) 
    echo "Answer <$answer>" 
} 

yesno "Hello world" 

這在子shell打印$?(0 =是,1 =否)。