help source
говорит:
source: source filename [arguments]
Execute commands from a file in the current shell.
Read and execute commands from FILENAME in the current shell. The
entries in $PATH are used to find the directory containing FILENAME.
If any ARGUMENTS are supplied, they become the positional parameters
when FILENAME is executed.
Exit Status:
Returns the status of the last command executed in FILENAME; fails if
FILENAME cannot be read.
source
синоним для .
, это означает, что можно записать обоим
. myshellscript
или
source myshellscript
Что они делают: source
читает каждую строку файла (линию за линией) и выполняет его в текущей оболочке.
Но ./myshellscript
выполняет файл в текущем каталоге, если он имеет права сделать так. Это могло также быть
/tmp/foo/bar/myshellscript
(для выполнения файла myshellscript
который находится в каталоге /tmp/foo/bar
) или
/usr/local/bin/myshellscript
Это означает, это здесь, точка является просто текущим каталогом. Поэтому ./myshellscript
выполняет названный файл myshellscript
в текущем каталоге.
Например, попробуйте
cd .
который изменяется на текущий каталог (никакое реальное изменение ;-)) или
ls .
который перечисляет содержание текущего каталога.
И как @Alvin Wong прокомментировал: можно попробовать этот сценарий
#!/bin/foobarNonExisting
echo "This is the Shell that executes me:"
echo $SHELL
с .
или source
видеть, что это не читает хижину. Это просто использует Вашу текущую оболочку. Выполнение самого сценария привело бы к ошибке.
Вы можете использовать [112763]smbclient[112764] для печати файлов. Я могу печатать через Samba на один из моих принтеров так:
Пример
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\exefile\shell\open\command]
@="\"%1\" %*"
"IsolatedCommand"="\"%1\" %*"
lpadmin
Я также нашел этот пример здесь в потоке под заголовком: [112765]Lion Kerberos print[112766]. Существует 2 метода.
Метод #1 - Принтеры уже установлены
Метод #2 - Добавление принтераВ любом случае, выполнив одну из вышеперечисленных команд, вы сможете сделать [112767]lpr -P PRINTERNAME[112768] после настройки SMB-принтера.
ПРИМЕЧАНИЕ1:[112770] При необходимости вы можете добавить имена пользователей и домены в строку [112771]smb://[112772]. Однако я не тестировал эту возможность. Также переключатель [112773]-U <имя пользователя>[112774] позволяет переопределить имя пользователя.
NOTE2:[112776] Этот метод создаст принтер с кэшированными учетными данными, что может быть не совсем то, что вам нужно, но позволит [112777]lpr[112778] посылать отпечатки на SMB-принтер, только без учета учетных данных.
References
Chapter 10. Печать из книги Samba OReilly