Ksh

從 ksh 中的下標返回值

  • January 19, 2016

我想從下面的腳本中呼叫腳本

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 程序中,在執行中)datesh程序被終止,您將獲得一個非零退出狀態,不應將其視為week number

引用自:https://unix.stackexchange.com/questions/256239