Ksh
從 ksh 中的下標返回值
我想從下面的腳本中呼叫腳本
weeknum=$(getweek )
這裡 getweek 是一個腳本文件。如何編寫子腳本文件,以便將值返回給 weeknum。我應該使用返回還是退出狀態作為返回值
你可以很好地
echo
用於這個目的。$ cat new echo 1 $ number=$(./new) $ echo $number 1
我認為這可以達到目的。另請注意,
new
上面是您要編寫的腳本。如果我誤認為了什麼,請在下面評論
該
$(cmd)
語法擷取(去除尾隨換行符)的標準輸出。cmd
所以你所要做的就是
getweek
輸出資訊:#! /bin/sh - date +%V # or %U or %W
date
在其繼承自的標準輸出上輸出週數sh
,在 的情況下,該週數weeknum=$(getweek)
由另一端的外殼程序設置為管道或套接字對,外殼程序讀取該輸出以儲存在weeknum
變數中。您還可以在退出狀態中返回週數:
#! /bin/sh - exit "$(date +%W)"
您通過以下方式獲得:
getweek weeknum=$?
但我建議不要這樣做。退出狀態應保留用於錯誤報告或限制為真/假值。
通常在上面,如果出現錯誤(在 fork 程序中,在執行中)
date
或sh
程序被終止,您將獲得一個非零退出狀態,不應將其視為week number。