小编And*_*rew的帖子

检查命令行中的数字是否为 2 的幂

我无法制作一个 bash 脚本来检查命令行中的输入数字是否为 2 的幂

输入

# ./pow2script.sh xyzdf 4 8 12 -2 USAD
Run Code Online (Sandbox Code Playgroud)

期望的输出:期望的输出应该在单独的行上

4
8
Run Code Online (Sandbox Code Playgroud)

因为只有 4 是 2^2 而 8 是 2^3

pow2script.sh 的内容

#!/bin/bash

function is_power_of_two () {
    declare -i n=$1
    (( n > 0 && (n & (n - 1)) == 0 ))
}

for number; do
    if is_power_of_two "$number"; then
        printf "%d\n" "$number"
    fi
done
Run Code Online (Sandbox Code Playgroud)

scripting bash

-5
推荐指数
2
解决办法
4960
查看次数

标签 统计

bash ×1

scripting ×1