Два экземпляра Conky продолжают мерцать

Когда вы запускаете любой скрипт, передавая имя файла программе интерпретатора скриптов, вы запускаете программу-интерпретатор со скриптом в качестве аргумента, переданного в него. Например, это будет выглядеть как «sh» с аргументом «filename.sh». Интерпретатор sh открывает файл.

С другой стороны, если вы запустите сам скрипт, система вызовет программу-интерпретатор, указанную и загрузив содержимое скриптов. В этом случае процесс выглядит как «filename.sh» без аргументов.

Вы должны убедиться, что у вас есть линия привязки:

#!/bin/bash
# bash script here

Линия звонка - это первая строка в скрипте и начинается с тех же двух символов #!, это то, что система считывает, когда пытается выполнить скрипт, а затем система передает сценарий программе сразу после. Обратите внимание, что эта строка не имеет ничего общего с bash и работает так же хорошо для python и perl, хотя они очень разные языки. Например, вы бы использовали #!/usr/bin/python, а затем следуете за ним с помощью кода python.

После того, как у вас есть сценарий, убедитесь, что вы установили разрешения на выполнение:

chmod a+x filename.sh

Тогда вы можете запустите скрипт как свой собственный процесс:

./filename.sh

Или поместите файл в известное место с хорошим именем программы, например /usr/sbin и запустите из любого места:

sudo cp filename.sh /usr/sbin/program-name
program-name
[d8 ] И это действительно очень первая строка дает преимущество использования строки bang с правильными разрешениями - все дело в развертывании. Очень сложно заставить пользователей запускать скрипт, если им нужно помнить, в какую программу запускать скрипт. Не забудьте указать полный путь к скрипту каждый раз, когда они захотят его запустить. Где, например, вставляя его в /usr/local/bin и делая его исполняемым, можно сэкономить много горя для людей, пытающихся использовать ваш скрипт. Эти программы становятся доступными для всех пользователей вашего компьютера.

Это также хорошо для идентификации. Если вы заходите в программу top, сценарий, запущенный без линии привязки, будет просто иметь имя интерпретатора, то есть bash, perl или python. Но если скрипт запускается с правильными разрешениями, то появляется имя скрипта.

Примечание. Если вы хотите распространять скрипт, доступный для всех, создайте страницу руководства и пакет deb для его установки. Нам нужно уменьшить количество случайных скриптов в Интернете и увеличить количество deb, которые можно удалить.

1
задан 9 March 2014 в 16:28

0 ответов

Другие вопросы по тегам:

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