В первую очередь, сценарий вызывается как ./filename.sh
вместо filename.sh
потому что текущий каталог (.
) не находится в PATH
по умолчанию в большинстве дистрибутивов. Другими словами, если Вы дадите Вашей оболочке название команды без полного пути, то она не будет искать ту команду в текущем каталоге. Это то, почему ./
часть необходима.
Что касается -attach
и co., они, как Вы понимаете, опции к сценарию. Действующее слово здесь. Они - опции, используемые при запущении этого скрипта скорее чем, когда запущение скрипта. Для понимания, что делают эти опции необходимо посмотреть на сам сценарий и/или любую документацию, которая шла с ним. Можно попробовать
./filename.sh -h
видеть, что справка обменивается сообщениями, если автор сценария предоставил кому-либо.
Наконец, одинокое 1
в конце аргумент. Это может быть аргумент -ctxtype
переключитесь или, если тому переключателю не нужен аргумент, то это - аргумент самому сценарию. Снова, необходимо посмотреть на сам сценарий для понимания то, что каждый переключатель, как предполагается, делает.
Вы можете получить его, набрав заглавную V вместо маленькой v:
$ pgrep -V
pgrep from procps-ng 3.3.3
$ pkill -V
pkill from procps-ng 3.3.4
Чтобы получить информацию о версии, найдите pgrep
в вашем PATH
и выполните команду what
. Я получаю:
% what /usr/bin/pgrep
/usr/bin/pgrep
PROGRAM:pkill PROJECT:adv_cmds-149
Обратите внимание, что имя программы - pkill
. pkill
и pgrep
являются жесткими ссылками на один и тот же двоичный файл в моей системе (OS X).
Пояснение (из руководства):
NAME what -- показывает, какие версии объектных модулей были использованы для создания файла
DESCRIPTION what -- читает каждое имя файла и ищет последовательности вида "@(#)", вставленные системой контроля исходного кода. Он печатает остаток строки, следующей за этим маркером, вплоть до нулевого символа, новой строки, двойной кавычки, или символа ">".
PS. pgrep
не принимает флаг -v
или -V
в моей системе (OS X), поэтому единственным вариантом является просмотр строк версий.