所以在我的代碼結構的這樣如何打印到終端,如果沒有標誌存在
USAGE="Usage: ./MyProject.sh [-o <output-file>] <guests>"
其中-o是一個標誌選項,使我們能夠在客人名字的文件名打印。 例如我插入到終端中
實施例1
./MyProject.sh -o GuestNames list
這個程序應該創建一個文件名爲GuestNames和存儲無論是在在列表轉換GuestNames的文件名。但是,如果我輸入下列指令
例2:
./MyProject.sh -o list
應該只是打印的人下列名稱列表到終端。
我已經有了代碼(例如它可以檢測文件名列表等),我遇到麻煩的是將它從終端打印出來,如果沒有如示例2所示的標誌存在。
這裏是我的代碼:
outfile= #default: print to stdout
function user{
while getopts ":o:" arg; do
case $arg in
o) outfile=$OPTARG #tests the outfile to see if there is a flag
;;
#Other cases and more code below but won't effect anything
}
if (outfile= $OPTARG); then
$OPTARG > $outfile
print_guests >$outfile #added for the guests to be print
else
print_guests #function that converts the list into an array and prints out guests
fi
我得到的錯誤是「$ OUTFILE:曖昧重定向」,因爲我認爲它試圖直接外野到一個空字符串,而不是試圖打印到終端。如果你可以請幫助我,我會感激它!
哇我多麼愚蠢,謝謝你 – Bob
當你第一次在bash腳本中遇到問題時,一般的經驗法則是,在腳本的頂部放置-xv(在shebang之後),你將得到設置了哪些變量以及執行了哪些命令。你也可以使用shellcheck.net來檢查你的腳本,因爲在你遇到的問題之外有什麼錯誤:) – grail