程序检查数字是否能被 2 整除且没有余数 BASH 时出现问题

Avi*_*iya 4 bash division

我试图编写一个程序来看看计数是否能被 2 整除而没有余数这是我的程序

count=$((count+0))

while read line; do

if [ $count%2==0 ]; then
    printf "%x\n" "$line" >> file2.txt
else
    printf "%x\n" "$line" >> file1.txt
fi

count=$((count+1))
done < merge.bmp
Run Code Online (Sandbox Code Playgroud)

该程序并非每次进入真实状态时都有效

gle*_*man 6

在 shell 中,[命令根据您提供的参数数量执行不同的操作。请参阅https://www.gnu.org/software/bash/manual/bashref.html#index-test

有了这个:

[ $count%2==0 ]
Run Code Online (Sandbox Code Playgroud)

您给出[一个参数(不计算尾随的),在这种情况下,如果参数不为空,则退出状态为成功(即“true”)]这相当于[ -n "${count}%2==0" ]

你要

if [ "$(( $count % 2 ))" -eq 0 ]; then
Run Code Online (Sandbox Code Playgroud)

或者,如果您使用的是 bash

if (( count % 2 == 0 )); then
Run Code Online (Sandbox Code Playgroud)