Как добавить общий принтер на Redhat

Шелловые скрипты содержат множество литературных строк (имена команд, файлов и т.д.), поэтому использование значения переменной требует символа для явной пометки, что это ссылка на переменную: Расширение параметра состоит из $, за которым следует имя переменной (в самом простом виде). Обычно вокруг подстановки переменной нужны двойные кавычки. Внутри одиночных кавычек переменные вообще не расширяются ($ внутри '...' просто обозначает себя). Таким образом:

for ((i=1; i<=10; i++)); do
  sed "s/a/$i/" "$i.m"
done

Внутри двойных круглых скобок знаки доллара не нужны, так как двойные скобки разделяют арифметические выражения, а в арифметических выражениях нет строк, поэтому голое слово интерпретируется как переменная, на которую можно разыменовать ссылку.

Обратите внимание, что команда sed заменяет самый первый a символ в файле-шаблоне. Вы можете захотеть выбрать имя переменной, которое имеет меньше шансов появиться в чем-то другом, например, в имени функции. В качестве альтернативы можно сгенерировать присваивание в начале скрипта:

for ((i=1; i<=10; i++)); do
  echo "a=$i;" >"$i.m"
  cat a.m >>"$i.m"
done

Оператор перенаправления >> присоединяется к существующему файлу, в отличие от > , который усекает файл, если он существует.

0
19.02.2015, 09:12
1 ответ

Использование здесь документов в сценариях в отличие от более распространенного # может обеспечить плавный переход к другим формам документации. Например:

#!/bin/sh
case $1 in (*-h*)
sed '/^:/,/^DOC/!d;s/^:/cat/' "$0" |sh -s "$@"
exit;;esac
: <<DOC
Enter as many lines of documentation as you might need - 
just don't begin any but the first with : or the last with DOC. 
"Quotes are " fine - and $params can be expanded if you 
don't quote the DOC delimiter.
DOC
... #shell script
... #more of same
: <<\DOC
- *Markdown Comment* -
    - or you can quote the delimiter and be more 
     free to use `backquotes` or whatever you like. 
     You can mark the comments up in markdown 
     in the first place, and print them w/ `"$0" -h`.
DOC

Для получения дополнительной информации см. пример tldp 19-2 в документации .

-121--84581-

Можно ли извлечь приложение узла в /opt/myNeyApplication ? или есть место получше?

Это больше вопрос мнения, но я считаю, что вы прекрасно это делаете. Стандартом для такого типа вещей является Filesystem Hierarchy Standard , который имеет более конкретные требования для /opt , но это ваши пакеты для ваших систем, так что...

Куда поместить сценарий для запуска приложения? Я уверен, что /usr/local/bin не подходит, так как сценарий не является «bin».

Если вы посмотрите на содержимое /usr/bin , вы увидите, что каталоги bin содержат множество сценариев; точка каталогов .../bin должна содержать только исполняемые команды, независимо от деталей их реализации. Таким образом, хранение сценария в /usr/local/bin для упрощения запуска приложения - это нормально.

Есть ли лучший способ сделать все это? Может быть, вы вообще не используете скрипт?

Вы могли бы на самом деле сделать ваш скрипт Node исполняемым непосредственно, со следующей строкой shebang, добавленной вверху:

#!/usr/bin/env node

(подробнее см. https://stackoverflow.com/questions/24253027/node-and-shebang-help-executing-via-command-line ). Затем можно переименовать app.js в приложение и поручить пользователям запускать его напрямую... (Предполагается, что он может работать с рабочим каталогом, отличным от /opt/myNireApplication .)

Если вы заинтересованы в упаковке приложений узла как пакетов .deb , посмотрите на npm2deb , он может пригодиться.

-121--139750-

В основном я использовал пакет SAMBA на сервере Windows для печати из RedHat, SuSe и Mint. Я также использовал GhostScript для использования принтера, подключенного к ПК с Windows XP. Для этого необходимо установить и запустить клиент SAMBA и CUPS в системе RedHat. Я не могу вспомнить подробности, но если вы Google эти термины я уверен, что вы найдете их.

0
28.01.2020, 04:57

Теги

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