Похоже, экранная команда "quit" возвращалась перед очисткой журнала. Добавление задержки между последней командой экрана и меткой даты должно дать экрану время для завершения записи в журнал. Другим вариантом может быть использование цикла «занято» для ожидания записи журнала в:
...
screen -S trans -X quit
while [ ! -s screenlog.0 ]
do
sleep 1
done
date +%F~%H:%M:%S >> screenlog.0
...
Вы можете перебрать один из наборов входных файлов (например, файлы .faa
) и сгенерировать другой входной файл и имена выходных файлов из тех:
for f in *.faa; do
./pal2nal.pl "$f" "${f%.faa}.fna" -codontable 11 -output paml > "${f%.faa}.paml"
done
Синтаксис ${f%word}
удаляет самый короткий завершающий компонент, соответствующий word
.
Команда
seq -w 0 6000
сгенерирует все числа от 0 до 6000; если число содержит менее четырех цифр, оно будет дополнено нулями слева. Вы можете использовать подстановку команд, чтобы заключить команду в цикл for:
for n in $(seq -w 0 6000) ;do
./pal2nal.pl abc$n.faa abc$n.fna -codontable 11 -output paml > abc$n.paml
done