我遇到以下问题(尝试使用$,(),反引号`等多个varians来工作:
GetAmountOfFileBlocks()
{
export DOC_BLOCKS=0
DOC_BLOCKS= $(`expr $DOCS_AMOUNT / $CHUNK_AMOUNT`)
DIVISOR=echo expr $DOCS_AMOUNT % $CHUNK_AMOUNT
if [ $DIVISOR -ne "0" ]
then
$DOC_BLOCKS=$DOC_BLOCKS+1;
fi
}
在debug(with -x)中,它显示如下:
- export DOC_BLOCKS = 0
- DOC_BLOCKS = 0 ++ expr 193/64
- DOC_BLOCKS =
- 3 ./cnv_dm_assign_files_to_chunks.sh:line 87:3:找不到命令
- DIVISOR =回波
- expr 193%64
我需要得到一个数字来表示容纳给定除数所需的块数(在这个例子中,193/64意味着3和一个提醒,意味着我需要4个“块”用于我的目的。
答案 0 :(得分:3)
这样的事情应该有效:
DOC_BLOCKS=$(( DOCS_AMOUNT / CHUNK_AMOUNT ))
REMAINDER=$(( DOCS_AMOUNT % CHUNK_AMOUNT ))
if [ "$REMAINDER" -gt "0" ]
then
DOC_BLOCKS=$(( DOC_BLOCKS + 1 ))
fi