用户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 -c 'printf "%in" {0..'$counter'..2}'
或者eval :
eval 'printf "%in" {0..'$counter'..2}'
最后两种方法都不是安全的,除非确定$counter是一个数字。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。