Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我正在尝试编写一个 shell 程序,给定一个参数,打印程序的名称和参数中的每个奇数字(即,不是偶数字)。但是,我没有得到预期的结果。在跟踪我的程序时,我注意到,尽管奇数单词的模数返回值为 1(例如,第 5 个单词,5 % 2 = 1),但程序仍然将结果视为 0(偶数单词)并且不打印这个单词。这里可能出了什么问题?
这里包括我的代码和跟踪的输出,以确切了解我得到了什么。(很抱歉没有将代码包含为文本,我是 vim 新手,还不知道复制/粘贴)
$result (需要美元符号)
$result
更改echo \$$#为echo $1。但是重写脚本可能会更简单:
echo \$$#
echo $1
#!/bin/sh echo $0 while [ $# -gt 0 ]; do expr $# % 2 > /dev/null && echo $1 shift done