雛形を作成する
スクリプト
下記のファイル (all.in.one.sh)を自分の好きなディレクトリに作成し、
パスを通し、
export PATH=作成したディレクトリ:${PATH}
実行許可を与える
chmod u+x all.in.one.sh
$ cat /usr/local/mybin/all.in.one.sh
#!/bin/bash
this_script=$(basename $0)
if [ $# -ne 1 ]; then
echo ERROR in ${this_script} : Wrong argument.
echo "Usage: $this_script <filaneme>"
exit 1
fi
if [ -f $1 ]; then
echo ERROR in ${this_script}: File, $1 exists.
exit 1
fi
f90=ifort
opt="-CB -traceback -fpe0 \" # -convert big_endian -assume byterecl"
cat <<END >$1
#!/bin/bash
#
# Description:
#
src=\$(basename $1 .sh).f90
exe=\$(basename \$src .f90).exe
f90=${f90}
opt="${opt}"
temp=\$(basename \$src .f90)
prog_name="\$(echo \$temp| sed -e 's/\./_/g' | sed -e 's/\-/_/g')"
cat <<EOF>\$src
program \${prog_name}
print '(A)','Hello, I am \${prog_name}.'
stop
end program \${prog_name}
EOF
echo
echo Created \${src}.
echo
ls -lh \${src}
echo
echo Compiling \${src} ...
echo
echo \${f90} \${opt} \${src} -o \${exe}
echo
\${f90} \${opt} \${src} -o \${exe}
if [ \$? -ne 0 ]; then
echo
echo "=============================================="
echo
echo " COMPILE ERROR!!!"
echo
echo "=============================================="
echo
echo TERMINATED.
echo
exit 1
fi
echo "Done Compile."
echo
ls -lh \${exe}
echo
echo
echo \${exe} is running ...
echo
\${exe}
if [ \$? -ne 0 ]; then
echo
echo "=============================================="
echo
echo " ERROR in \$exe: RUNTIME ERROR!!!"
echo
echo "=============================================="
echo
echo TERMINATED.
echo
exit 1
fi
echo
echo "Done \${exe}"
echo
END
echo
echo "Created new file, $1"
echo
ls -lh $1
echo
実行例
スクリプトの作成
$ all.in.one.sh mytest.sh
Created new file, mytest.sh
-rw-rw-r-- 1 am am 678 10月 16 16:49 mytest.sh
作成されたスクリプト
$ cat mytest.sh
#!/bin/bash
#
# Description:
#
src=mytest.f90
exe=mytest.exe
f90=ifort
opt="-CB -traceback -fpe0"
prog_name=$(echo mytest| sed -e 's/\./_/g')
cat <<EOF>mytest.f90
program ${prog_name}
print '(A)','Hello, I am ${prog_name}.'
stop
end program ${prog_name}
EOF
echo
echo Created ${src}.
echo
ls -lh ${src}
echo
echo Compiling ${src} ...
${f90} ${opt} ${src} -o ${exe}
if [ $? -ne 0 ]; then
echo
echo COMPILE ERROR!!!
echo
echo Terminated.
echo
exit 1
fi
echo "Done Compile."
echo
ls -lh ${exe}
echo
echo
echo ${exe} is running ...
echo
${exe}
if [ $? -ne 0 ]; then
echo
echo ERROR in $exe: RUNTIME ERROR!!!
echo
echo Terminated.
echo
exit 1
fi
echo
echo "Done ${exe}"
echo
実行例
$ sh mytest.sh
Created mytest.f90.
-rw-rw-r-- 1 am am 76 10月 16 16:50 mytest.f90
Compiling mytest.f90 ...
Done Compile.
-rwxrwxr-x 1 am am 617K 10月 16 16:50 mytest.exe
mytest.exe is running ...
Hello, I am mytest.
Done mytest.exe
作成されたプログラムの雛形
$ cat mytest.f90
program mytest
print '(A)','Hello, I am mytest.'
stop
end program mytest