我无法制作一个 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)