Как переименовать файл в сценарии удара один за другим

[

] Я не думаю, что это возможно, потому что всегда может быть только одно окно, принимающее входные данные от мышей и клавиатур, т.е. одно окно с фокусом. [

] [

] Но вы можете запустить программу, которую хотите автоматизировать, на отдельном X-сервере. Так же[

] [

X :1 &
export DISPLAY=:1
myprogram &
xdotool …

] [

]Таким образом Вы можете использовать весь экран. Недостатком такого подхода является то, что вы все равно не можете одновременно видеть свой обычный рабочий стол и управляемый. Поэтому либо запустите команды xdotool с нового X-сервера и оставьте их запущенными в фоновом режиме, либо используйте инструмент под названием [][]xpra[][]. Он позволяет запустить новый виртуальный X-сервер и подключиться к нему из X-сервера по умолчанию. Для его настройки необходимо запустить[

] [

xpra start :1
export DISPLAY=:1
myprogram &

] [

]и просмотреть выполнение программы[

] [

xpra attach

] [

]с другого терминала на оригинальном X-сервере.[

].

1
13.12.2014, 23:32
2 ответа

Для сохранения статуса между итерациями в качестве ссылки на запрашиваемый файл используется data.csv.

# check to see if an argument is given
if [ "$#" -ne 1 ]; then
        echo "Illegal number of parameters"
        exit
fi

# check if ran before if so move that to processed/ directory
if [ -h "data.csv" ]; then
        prev=`readlink data.csv`
        echo "Found previous run $prev"
        rm -f data.csv  # remove link
        mv -f $prev processed/  # move previous file to processed directory
        echo "Moved to processed/$prev"
fi

# check to see if file exists
if [ -e data$1.csv ]; then
        ln -s data$1.csv data.csv  # link data.csv to the requested file
        echo "Linked data.csv -> data$1.csv"
else
        echo "No such file data$1.csv"
fi
1
27.01.2020, 23:37

Если имена файлов не имеют новых линий, вы можете найти первый файл для обработки в скрипте Bash с помощью:

first=$(ls --sort=version *.csv | head -1)
ln -s "$first" data.csv 

Однако, прежде чем переименовать этот файл, который вы должны убедиться, что и старый существующий, не в порядке:

#! /bin/bash
if [ -e data.csv ] ; then
   mv $(readlink data.csv) backup_directory
   rm data.csv
fi

Объедините тех, кто в правильном порядке и добавьте обработку data.csv в конце, и вы можете многократно вызывать скрипт для обработки всех файлов.

1
27.01.2020, 23:37

Теги

Похожие вопросы