 更多精彩,请点击上方蓝字关注我们!

1
Fortran之case语句简单实用
在centos操作系统下,直接使用gfortran。
sudo yum install gcc-gfortran
[root@localhost fortran]# cat test_case.F90 program TestCase !程序名称,可以省略,但建议不要省略
implicit none !关闭默认类型功能,所有的变量都要事先声明 !implicit:用来设置默认类型,fortran如果不经过申明,将由第一个字母来决定变量类型 !implicit integer(A-F,I-K):以A-F开头和I-K的变量都将视为整型数
integer score character eval write(*,*) "Score" read(*,*) score
select case(score)!起始语句 !只能使用整数,字符,以及逻辑变量,不能使用浮点数及复数 !每个case中使用的数值必须是固定的常量,不能使用变量 case(101: ) eval="S" case(80:100) eval="A" case(0:59) eval="!" case default!其它情况 eval="?" end select !case语句块的形式: ! case(3) ! case(1:5) ! case(2: ):变量大于等于2时执行 ! case( :6):变量小于等于8时执行语句块 ! case(1,3,5,7):或执行语句 write(*,"('evaluate:',A1)") eval !格式化输出,用固定的一个字符字段来输出字符串,超过将被省去 !关于常用的格式化的输出: ! "(I6)":固定以六个字符的字段来输出一个整数,不足的将会在前面补充空格 ! "(I6.4)";固定六个字符字段输出,至少输出4个数字,不足则前面补零 ! "(F5.4)":固定5个字符宽度来输出浮点数,小数部分固定输出4个,小数部分不足将0填充 ! "(6X)":输出位置右移6位,以空白填充 ! "(E15.7)":科学计数法,总共使用15个字符字段,小数部分占7位 ! 关于格式化的输出,遇到百度即可
stop end [root@localhost fortran]# gfortran test_case.F90
[root@localhost fortran]# ./a.out
Score
-1
evaluate:?
[root@localhost fortran]# ./a.out
Score
123
evaluate:S
[root@localhost fortran]# ./a.out
Score
100
evaluate:A
[root@localhost fortran]# ./a.out
Score
58
evaluate:!
1
shell之case语句
case语句语法:
case $变量名 in
模式1)
命令序列1
;;
模式2)
命令序列2 ;;
*)
默认执行的命令序列
;;
esac
case语句结构特点如下:
(1)case行尾必须为单词 in 每个模式必须以右括号 )
(2)结束双分号 ;; 表示命令序列结束
(3)匹配模式中可是使用方括号表示一个连续的范围,如[0-9];使用竖杠符号“|”表示或。最后的“*)”表示默认模式,当使用前面的各种模式均无法匹配该变量时,将执行“*)”后的命令序列
[root@localhost fortran]# cat test #!/bin/bash read -p "Please input :" pd case $pd in [a-z]|[A-Z]) echo "this is a letter." ;; [0-9]) echo "this is a digit." ;; *) echo "It's others." esac
[root@localhost fortran]# ./test Please input :2 this is a digit.
[root@localhost fortran]# ./test Please input :a this is a letter.
[root@localhost fortran]# ./test Please input :A this is a letter.
[root@localhost fortran]# cat shell_case #好像不能这样用,是否可解 #! /bin/bash read -p "Please input score: " SCORE case "$SCORE" in [90-100]) echo "grade: A" ;; [80-89]) echo "grade: B" ;; [70-79]) echo "grade: C" ;; [60-69]) echo "grade: D" ;; [0-59]) echo "grade: E" ;; *) echo "this is a bug" esac
case语句常见于一些服务的启动脚本,如mysql、nginx等 [root@localhost 3306]# cat mysql #!/bin/bash
port=3306 mysql_user="root" mysql_pwd="yanjiaxi" CmdPath="/application/mysql/bin" mysql_sock="/data/${port}/mysql.sock" #startup function ...... ...... case $1 in start) start_mysql ;; stop) stop_mysql ;; restart) restart_mysql ;; *) printf "Usage: /data/${port}/mysql {start|stop|restart}\n" esac
[root@localhost fortran]# ./test2 1.Math 2.English 3.Physics 4.Chemistry Please choose your course:1 Math
[root@localhost fortran]# cat test2 #!/bin/bash #关于颜色的控制输出,百度,即用即搜 RED_COLOR='\E[1;31m' GREEN_COLOR='\E[1;32m' YELLOW_COLOR='\E[1;33m' BLUE_COLOR='\E[1;34m' RES='\E[0m'
function usage(){ echo "USAGE: $0 {1|2|3|4}" exit 1 }
function menu(){ #定义菜单 cat <<END 1.Math 2.English 3.Physics 4.Chemistry END }
function chose(){ read -p "Please choose your course:" COURSE case "$COURSE" in 1) echo -e "${RED_COLOR}Math${RES}" ;; 2) echo -e "${GREEN_COLOR}English${RES}" ;; 3) echo -e "${YELLOW_COLOR}Physics${RES}" ;; 4) echo -e "${YELLOW_COLOR}Chemistry${RES}" ;; *) usage esac }
function main(){ menu chose } main
[root@localhost fortran]# ./test2 1.Math 2.English 3.Physics 4.Chemistry Please choose your course:4 Chemistry
[root@localhost fortran]# ./test2 1.Math 2.English 3.Physics 4.Chemistry Please choose your course:3 Physics
[root@localhost fortran]# ./test2 1.Math 2.English 3.Physics 4.Chemistry Please choose your course:2 English
[root@localhost fortran]# ./test2 1.Math 2.English 3.Physics 4.Chemistry Please choose your course:1 Math

◆ Linux Shell 编程特殊符号详解
◆ 再谈重定向
◆ 详解Linux正则
◆ Python正则知多少
◆ Linux三剑客之grep
◆ Linux三剑客之sed详解(1)
◆ linux三剑客之sed详解(2)
◆ 小白入门awk必备
◆ 你所不知道的awk内建函数
---------------------------------------------------------------------------------------------------------------------- 我们尊重原创,也注重分享,文章来源于微信公众号:Linux与数据库自学之道,建议关注公众号查看原文。如若侵权请联系qter@qter.org。 ----------------------------------------------------------------------------------------------------------------------
|