微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何从用户提供的input中打印偶数字

在这里有这个代码,它应该这样做:

用户input最大数量。 并根据input的号码,我想显示所有的偶数,直到这个数字。

#! /bin/bash echo "What is your max number:" read counter for number in {0.."$counter"} if [ (($number % 2 == 0)) ] then echo "$number" fi

但它不起作用。 相反,当我从terminal呼叫他的脚本时,我收到这个错误

[root@sunshine Desktop]# bash Tester What is your max number: 9 Tester: line 9: Syntax error near unexpected token `if' Tester: line 9: `if [ (($number % 2 == 0)) ]'

在bash shell中的for循环内连接stringvariables

Linux命令variablesreplace。 帮助表示赞赏

单行:打印除最后3行之外的所有行?

awk将CSV文件(加载到oracle)的特定值转换为不带引号| awk | unix

我怎样才能启动一个进程,并把它放到Python的背景?

setfacl:关于选项

每次程序终止时运行的cron中的Bash程序

当通过bash启动python脚本时,权限被拒绝

Bash脚本运行顺序,为什么它排队读命令?

bash标签完成问题与Ubuntu 12.04

你忘了for循环的do和done部分。 无论如何,不​​幸的是,你不能用{a..b}语法来使用变量。 你需要写一个计数循环来代替。 然后你可以增加2,这将消除偶数的检查:

for ((number = 0; number < counter; number += 2)); do echo "$number" done

最后,我建议将变量重命名为:

counter – > max

number – > counter

把它放在一起:

#!/bin/bash echo "What is your max number:" read max for ((counter = 0; counter < max; counter += 2)); do echo "$counter" done

更简单的方法

seq 0 2 $counter

可以使用另一个bash调用来将变量传递给大括号扩展:

bash -c 'printf "%in" {0..'$counter'..2}'

或者eval :

eval 'printf "%in" {0..'$counter'..2}'

最后两种方法都不是安全的,除非确定$counter是一个数字。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐