我正在尝试编写一个shell程序,在给定参数的情况下,打印程序的名称和参数中的每个奇数单词(即,甚至不是单词)。但是,我没有得到预期的结果。在跟踪我的程序时,我注意到,尽管奇数字上的模数返回值为1(例如,第5个字,5%2 = 1),程序仍然将结果视为0(偶数字)并且不打印这个单词。这可能会出现什么问题?
这里包含我的代码和跟踪输出,以确切了解我的内容。 (抱歉不包括代码作为文本,我是vim的新手,还不知道复制/粘贴)
答案 0 :(得分:3)
$result
(需要一个美元符号)
答案 1 :(得分:3)
将echo \$$#
更改为echo $1
。但重写脚本可能更简单:
#!/bin/sh
echo $0
while [ $# -gt 0 ]; do
expr $# % 2 > /dev/null && echo $1
shift
done