3

引数を指定すると、プログラムの名前と引数内のすべての奇数の単語 (つまり、偶数の単語ではない) を出力するシェル プログラムを作成しようとしています。ただし、期待した結果が得られません。私のプログラムをたどると、modulus が奇数ワード (5 番目のワード、5 % 2 = 1 など) で値 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 に答える