雛形を作成する

スクリプト

下記のファイル (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