Witam
Napisałem sobie skrypt, który teoretycznie powinien robić tak, że tam sobie tworzy odpowiednie katalogi, przegrywa pliki, nadaje prawa wykonywania itp. a na końcu uruchamia odpowiedni program w odliczeń kwantowych poleceniem:
runcry06 $nazwa &
gdzie $nazwa to nazwa podanego pliku wejściowego do programu. Program uruchamia się w tle i nie ma problemu, liczy sobie dalej nawet jak się wyloguję z konsoli.
Mała niedogodność jest taka, że po uruchomieniu mojego skryptu (nazwałem go runc i dodałem do PATH i nadałem prawa wykonywania) tak czy siak muszę nacisnąć ENTER, aby skrypt zadziałał dalej. Szczególnie jest to niewygodne jak podam mu wiele plików do uruchomienia a skrypt jest pętlą to przy każdym cyklu trzeba to zrobić. Czy to da się zautomatyzować?
Z góry dzięki
Poniżej dokładnie problem:
[student10@monty crystal]$ runc paracetamol2_test &
Uruchomiono job o nazwie 'paracetamol2_test'
suffix of output file: out
printed output filename paracetamol2_test.out
creating temporary directory /usr/local/crystal06/scratch/tmp21210
/scratch/student10/crystal/paracetamol2_test/paracetamol2_test.out
output in /scratch/student10/crystal/paracetamol2_test/paracetamol2_test.out
input expected in /scratch/student10/crystal/paracetamol2_test/paracetamol2_test.d12
/usr/local/crystal06/scratch/tmp21210
tmp /usr/local/crystal06/scratch/tmp21210
FORTRAN STOP
SCF abnormal end - no wf written in fort.9
TUTAJ MUSZĘ NACISNĄĆ ENTER MIMO, ŻE DZIAŁA W TLE...
A poniżej kod skryptu:
#!/bin/bash
for i in "$@"; do
nazwa=$1
cd /scratch/$USER/crystal
mkdir $nazwa
mv /scratch/$USER/crystal/$nazwa.d12 /scratch/$USER/crystal/$nazwa/$nazwa.d12
cd /scratch/$USER/crystal/$nazwa
chmod +x $nazwa.d12
runcry06 $nazwa &
echo ""
echo "Uruchomiono job o nazwie '$nazwa'"
echo ""
shift
done