Печать командной строки с аутентификацией требования принтера Samba

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 видеть, что это не читает хижину. Это просто использует Вашу текущую оболочку. Выполнение самого сценария привело бы к ошибке.

9
20.03.2014, 15:19
1 ответ
[112288]smbclient

Вы можете использовать [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

enter image description here

Chapter 10. Печать из книги Samba OReilly

8
27.01.2020, 20:07

Теги

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