3

我正在尝试编写一个 shell 程序,给定一个参数,打印程序的名称和参数中的每个奇数字(即,不是偶数字)。但是,我没有得到预期的结果。在跟踪我的程序时,我注意到,尽管奇数单词的模数返回值为 1(例如,第 5 个单词,5 % 2 = 1),但程序仍然将结果视为 0(偶数单词)并且不打印这个单词。这里可能出了什么问题?

这里包括我的代码和跟踪的输出,以确切了解我得到了什么。(很抱歉没有将代码包含为文本,我是 vim 新手,还不知道复制/粘贴) 代码 输出

4

2 回答 2

4

$result (需要美元符号)

于 2012-10-05T04:28:42.997 回答
3

更改echo \$$#echo $1。但是重写脚本可能会更简单:

#!/bin/sh

echo $0
while [ $# -gt 0 ]; do
    expr $# % 2 > /dev/null && echo $1
    shift
done
于 2012-10-05T04:31:12.117 回答