
#!/bin/bash
# pre.sh revision 4.0.0 Date: 2011/12/24
### Path ###
FASTAR_DIR=$(cd $(dirname $0);pwd)
##### Function s #####
. ${FASTAR_DIR}/"script.func"
usage(){
echo "Usage: " $COMNAME " [option]"
echo " option : <NONE> ...... by 1 process"
echo " -n <CPUs> ... batch process by <CPUs> process"
echo " -all ........ batch process"
echo " -e .......... use exact wall distance mode"
echo " -metis ...... use pre-fastar metis version"
echo " -fsi ........ use pre-fastar metis version with FSI mode"
echo " -emetis ..... use pre-fastar metis version with exact wd mode"
echo " -efsi ....... use pre-fastar metis version with FSI and exact wd mode"
echo " -h .......... show this statement"
}
##### Function e #####
#======================================#
# Main #
#======================================#
#=== initialize ===#
COMNAME=`basename $0`
set_variables
if [ $# -eq 1 ]; then
case $1 in
"-all" | "-e" | "-metis" | "-fsi" | "-emetis" | "-efsi") opt=$1 ;;
"-h") usage; exit ;;
*) usage; exit ;;
esac
cpu=1
elif [ $# -eq 2 ]; then
case $1 in
"-n") opt=$1 ;;
*) usage; exit ;;
esac
if [ $2 -ge 1 ]; then
cpu=$2
else
cpu=1
fi
elif [ $# -gt 2 ]; then
usage; exit
else
opt="hoge"
cpu=1
fi
#=== read inputfile ===#
read_input
case $reorder in
".true." | ".TRUE." | "T" | "t")
reorder_check="TRUE"
;;
*)
reorder_check="FALSE"
;;
esac
#=== ABORT ===#
trap 'abort 1 $COMNAME' 1 2 3 9 15
#=== Make directories ===#
make_dir
#=== preprocess ===#
if test $opt = "-all" ;then
echo $NPREFAST...
rm -f $TMP_FILE
if [ $domain -ge 2 ]; then
n_loop=$domain
id=1
for ((id=1; id<=$n_loop; id++))
do
echo "$NPREFAST $id > $TMP_FILE$id &"
$PREFAST $id > $TMP_FILE$id &
done
wait
i=1
for ((i=1; i<=$domain; i++))
do
cat $TMP_FILE$i >> $TMP_FILE
rm -f $TMP_FILE$i
done
elif [ $domain -eq 1 ]; then
$PREFAST
echo ""
else
echo "ERROR: It is wrong that total number of domain in $INPUT."
exit
fi
elif test $opt = "-n"; then
echo $NPREFAST...
rm -f $TMP_FILE
n_loop=`expr $domain / $cpu`
id=1
i=1
for ((i=1; i<=$n_loop; i++))
do
var=`expr $cpu \* \( $i - 1 \) + 1`
id=$var
j=1
for ((j=1; j<=$cpu; j++))
do
echo "$NPREFAST $id > $TMP_FILE$id &"
$PREFAST $id > $TMP_FILE$id &
id=`expr $id + 1`
done
wait
done
if [ `expr $id - 1` -lt $domain ]; then
while [ $id -le $domain ];
do
echo "$NPREFAST $id > $TMP_FILE$id &"
$PREFAST $id > $TMP_FILE$id &
id=`expr $id + 1`
done
wait
fi
i=1
for ((i=1; i<=$domain; i++))
do
cat $TMP_FILE$i >> $TMP_FILE
rm -f $TMP_FILE$i
done
elif test $opt = "-e" ;then
echo $NPREFAST...
rm -f $TMP_FILE
$PREFAST -e
elif test $opt = "-metis" ;then
echo $NPREMETIS...
rm -f $TMP_FILE
$PREMETIS
elif test $opt = "-fsi" ;then
make_dir_fsi
echo $NPREMETIS...
rm -f $TMP_FILE
$PREMETIS FSI
elif test $opt = "-emetis" ;then
echo $NPREMETIS...
rm -f $TMP_FILE
$PREMETIS -e
elif test $opt = "-efsi" ;then
make_dir_fsi
echo $NPREMETIS...
rm -f $TMP_FILE
$PREMETIS -eFSI
else
echo $NPREFAST...
rm -f $TMP_FILE
$PREFAST
fi
#=== reorder ===#
case $reorder_check in
"TRUE")
echo $NREORDGRID...
$REORDGRID
echo $NREORDINDX...
$REORDINDX
;;
esac
exit
Я попытался запустить скрипт оболочки, но появилась следующая ошибка:
[gakubu@localhost Kenkyuu]$ pre.sh
/home/gakubu/FaSTAR2019/Bridget2019/Kenkyuu/pre.sh: строка 8: /home/gakubu/FaSTAR2019/Bridget2019/Kenkyuu/script.func: Такого файла или каталога нет /home/gakubu/FaSTAR2019/Bridget2019/Kenkyuu/pre.sh: строка 30: set_variables: команда не найдена /home/gakubu/FaSTAR2019/Bridget2019/Kenkyuu/pre.sh: строка: read_input: команда не найдена /home/gakubu/FaSTAR2019/Bridget2019/Kenkyuu/pre.sh: строка: make_dir: команда не найдена
...
[gakubu@localhost Кенкю]$
enter code here
Что это значит и как это исправить?
решение1
В строке 8 скрипта содержится следующий код:
. ${FASTAR_DIR}/"script.func"
Это источник файла в определенном каталоге. Этот файл, вероятно, содержит определения функций оболочки. Файл не найден, согласно сообщению об ошибке, и эффект от того, что этот файл не найден, заключается в том, что позже не найдены функции, которые он определяет (это ошибки "команда не найдена", которые вы получаете).
Предполагается, что файл script.func
доступен в том же каталоге, что и сам скрипт. Если вы переместили скрипт туда, где он находится в данный момент, но забыли переместить файл script.func
вместе с ним, то это может быть причиной ошибки.
Я не буду больше комментировать сам скрипт, скажу лишь, что использование в нем расширений переменных без кавычек делает его очень хрупким и, возможно, небезопасным.