私は馬鹿のように感じます。呼び出されるたびに値を切り替えるBASH関数が必要です。スクリプト自体は非常に単純で、関数を直接呼び出すと機能します。ただし、文字列内で呼び出された場合は同じようには機能しません。コードは次のとおりです。
odd_or_even()
{
if [ $ODDEVEN -eq 1 ]; then
echo "odd"
let "ODDEVEN+=1"
else
echo "even"
let "ODDEVEN-=1"
fi
}
ODDEVEN=1
odd_or_even # Prints "odd"
odd_or_even # Prints "even"
echo "<td class=\"`odd_or_even`\">Test</td>" # Prints class=odd
echo "<td class=\"`odd_or_even`\">Test</td>" # Prints class=odd
BASHには、文字列内での関数の呼び出しに関する制限がありますか?何かを出力しているので動作しているように見えますが、数学演算を実行していません。