Ну, быстрый ответ - то, что .deb пакет, который Вы пытаетесь установить, разработан для Ubuntu, не Debian. Ubuntu имеет пакет "python-appindicator", и Debian не делает.
Вы могли попытаться просто распаковать "универсальный архив" в https://stackapps.com/questions/83/stackapplet-bringing-stack-exchange-notifications-to-your-desktop-1-5-beta-2-r и видеть, работает ли он. Я отмечаю, что код имеет "/usr/share /" hardcoded повсеместно, таким образом, необходимо будет распаковать его к корневому каталогу. Eugh. Возможно, попытайтесь использовать Checkinstall и т.п.?
./test.sh
выполнения test.sh
как отдельная программа. Это, может оказаться, сценарий удара, если файл test.sh
запускается с #!/bin/bash
. Но это могло быть что-то еще в целом.
. ./test.sh
выполняет код файла test.sh
в рабочем экземпляре удара. Это работает как будто файл содержания test.sh
был включен дословно вместо . ./test.sh
строка. (Почти: существует несколько деталей, которые отличаются, такие как значение $BASH_LINENO
, и поведение return
встроенный.)
source ./test.sh
идентично . ./test.sh
в ударе (в других оболочках, source
может немного отличаться или не существовать в целом; .
поскольку включение находится в стандарте POSIX).
Обычно видимое различие между запущением отдельного скрипта с ./test.sh
и включая сценарий с .
встроенный это если test.sh
сценарий устанавливает некоторые переменные среды с отдельным процессом, только среда дочернего процесса установлена, тогда как с включением сценария, среда единственного процесса оболочки установлена. Если Вы добавляете строку foo=bar
в test.sh
и echo $foo
в конце сценария выполнения вызова Вы будете видеть различие:
$ cat test.sh
#!/bin/sh
foo=bar
$ ./test.sh
$ echo $foo
$ . ./test.sh
$ echo $foo
bar
Другая вещь, которую я отмечаю, является этим, если у Вас есть псевдоним как это:
# add into .bashrc_aliases
alias ls='ls -lht'
С ./test.sh
Вы получите нормальное ls
вывод (и другой PID, чем текущая оболочка):
auraham@pandora:~/iso$ ./test.sh
dsl-4.4.10.iso test.sh
3136 # PID
С . test.sh
или . ./test.sh
Вы получите более подробный результат (и тот же PID, чем текущая оболочка):
auraham@pandora:~/iso$ echo $$
2767 # shell PID
auraham@pandora:~/iso$ . test.sh
total 50M
drwxrwxr-x 2 auraham auraham 4.0K Jul 30 15:41 .
-rwxrwxr-x 1 auraham auraham 32 Jul 30 15:41 test.sh
drwxr-xr-x 50 auraham auraham 4.0K Jul 30 15:30 ..
-rw-rw-r-- 1 auraham auraham 50M Jul 28 17:24 dsl-4.4.10.iso
2767 # PID
.bashrc
if [ -f ~/.bash_aliases ]; then . ~/.bash_aliases fi
Затем вставьте свои псевдонимы .bash_aliases
.
– auraham
01.08.2012, 04:17
alias
ключевое слово? (Возможно, это - просто ошибка в Вас сообщение - на строке 3?)
– Emanuel Berg
01.08.2012, 13:26
При запущении скрипта первый путь выполняет его как дочерний процесс. Определение источника (второй путь), с другой стороны, запускает скрипт, как будто Вы ввели все его команды в текущую оболочку - если сценарий установит переменную, то это останется установленным, если сценарий выйдет, то Ваша сессия выйдет. Посмотрите help .
для документации.
Основное использование мне для source
(или .
) функции удара.
У меня есть сценарии со многими функциями, и я выполняю всех их с моим .bashrc
. Функции "становятся" командами, которые я часто использую.
Обычно ./file
— это просто способ указать на файл, который в данном случае эквивалентен пути PWD (к текущему рабочему каталогу ), за которым следует используемое имя файла.
$ pwd
/home/isaac/me/bin/
$ realpath./file
/home/isaac/me/bin/file
Также бывает, что путь в начале строки (первый аргумент или аргумент 0 )сигнализирует оболочке о попытке выполнить этот файл. Если это сценарий оболочки, скорее всего, оболочка загрузит его для выполнения в новой среде выполнения. Если это какая-то другая форма действительного исполняемого файла, оболочка попытается выполнить его с помощью команды ядра exec
.
Добавление начальной точки в командную строку (работает только в том случае, если это полный нулевой аргумент )позволит загружать сценарий оболочки (, а не внешний исполняемый файл )с той же средой выполнения, которая уже настоящее время.
$../file # that exact same file as above, now it is sourced
$ source./file # an equivalent (but longer) command.
Конечно, если каталог не указан в пути (, не начинающемся с точки ), потребуется некоторый поиск, чтобы найти конкретный файл для источника.
В баш:
If filename does not contain a slash, filenames in PATH are used to find the directory containing filename.
И, если в режиме POSIX, PWD также используется для поиска данного filename
.
echo $$
к сценарию покажет довольно ясное различие.$$
переменная содержит PID текущей оболочки. примечание – 25.07.2012, 13:15. ./test.sh
звоните из другого сценария оболочки для использования функций, которые описаны в test.sh. Я имею в виду, это не просто переменные, которые можно установить, можно также создать новые функции таким образом, которые являются затем вызываемыми от удара или некоторого другого сценария.. /usr/libexec/company/tools; custom_command "variable
" – Rqomey 31.07.2012, 11:33