Создание ссылок на сайты

Во-первых, Ваш сценарий будет воздействовать на один файл (последнее в списке). Кроме того, я не думаю, что один лайнер является всегда соответствующим или изящным. Крон делает много негласно, и необходимо смочь рассмотреть вещи тот сбой. Рабочий крон "часто" может быть проблемой. Можно закончить с десятками этих процессов выполнение, замедлив системы, поскольку они все пытаются обработать файлы в своей очереди.

Это - то, что я сделал бы.

Dir="$HOME/input_files"   # never hardcode when you have variables
for filename in "$Dir"/*.xml; do
    # is the file non-empty AND is it still there, or may caught by another
    # process
    if [ -s "$filename" ]; then
        # move files locally will be faster than crossing filesystems to /tmp
        mkdir -p "$Dir/.processing"
        # temp name should use pid, just in case another input with the same name comes in
        tempname="$Dir/.processing/`basename $filename .xml`.$$"
        mv "$filename" "$tempname"
        # send stdout and stderr to a .output file
        myscript.sh "$tempname" other_inputs > "$tempname.output" 2>&1
        rc=$?
        if [ $rc -eq 0 ]; then
            rm "$tempname" "$tempname.output"
        else
            echo "Error processing $filename; rc=$rc" >&2
            echo "File in $tempname" >&2
        fi
    done

Это или удалит файл после того, как обработка, или на ошибке удержит файл .processing каталог включая вывод команды. Команда выше ничего не регулирует, но она действительно позволяет, чтобы больше чем один работал, не вмешиваясь друг в друга. Существуют другие вопросы о том, как создать довольно эффективные очереди заданий для увеличения.

-1
25.01.2013, 21:13
2 ответа

Принятие Вы используете что-то как Gnome, Xfce или некоторая совместимая настольная среда; хорошая альтернатива должна создать a .desktop файл. Например, unix_stackexchange_com.desktop со следующим содержанием:

[Desktop Entry]
Version=1.0
Name=Unix & Linux
Comment=Link to Unix & Linux.
Exec=google-chrome http://unix.stackexchange.com
Terminal=false
Icon=/path/to/icon
Type=Application

Теперь Вы просто делаете это исполняемым файлом как это

chmod +x unix_stackexchange_com.desktop

Вместо google-chrome можно использовать любимый браузер как firefox и т.п. Или используйте более универсальный подход как xdg-open, если это установлено и настроено. Также можно заменить /path/to/icon поскольку универсальный значок называет как text-html использовать значок, используемый для файлов HTML в Вашем файловом менеджере или указать на изображение где-нибудь в Вашем диске. В моем случае я загрузил и одолжил значок этого сайта.

Example of how it looks

4
28.01.2020, 05:07

Ссылка на сайт не точно возможна, при попытке пойти hardlink/symlink путем. То, что можно сделать, и я нашел это предложение здесь, должно создать простой сценарий, который может быть выполнен.

#!/bin/sh
x-www-browser 'http://www.example.com/your/link'
1
28.01.2020, 05:07

Теги

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