A sintaxe $(cmd) captura a saída padrão de cmd (despojado de caracteres de nova linha à direita).
Portanto, tudo o que você precisa fazer é ter getweek da informação:
#! /bin/sh -
date +%V # or %U or %W
date gera o número da semana em seu stdout que herda de sh , que no caso de weeknum=$(getweek) é definido como um pipe ou par de soquetes pelo shell na outra extremidade da qual o shell lê a saída para armazenar na variável weeknum .
Você também pode retornar o número da semana no status de saída:
#! /bin/sh -
exit "$(date +%W)"
Qual você obtém com:
getweek
weeknum=$?
mas eu aconselharia contra isso. O status de saída deve ser reservado para relatório de erros ou limitado a valores verdadeiro / falso.
Tipicamente acima, se houver um erro (ao bifurcar um processo, ao executar date ou sh ) ou o processo for eliminado, você receberá um status de saída diferente de zero, que não deve ser tratado como um < em> número da semana .