Доступная переменная как переменная среды

Люди говорят, что в именовании файлов Unix не должно быть пробелов.

Люди много чего говорят. Есть некоторые инструменты, которые могут напортачить, но, надеюсь, их мало на данный момент, поскольку пробелы - это вирус, распространенный гигантскими корпорациями потребительских несвободных ОС, и теперь их невозможно избежать.

Пробелы делают неудобным указание имен файлов в командной строке и т.д. Вот и все. Единственными категорически запрещенными символами в *nix-системах являются NUL (не волнуйтесь, его нет ни на вашей, ни на чьей-либо другой клавиатуре) и /, поскольку это разделитель путей. 1 В остальном - все, что угодно. Отдельные элементы пути (имена файлов) ограничены 255 байтами (возможное осложнение, если вы используете расширенные наборы символов), а полные пути - 4 КиБ.

Или это просто вопрос личных предпочтений

Я бы сказал, что это так. Большинство DE создают множество каталогов с заглавными буквами в вашем $HOME (Downloads, Desktop, Documents - D очень популярна), так что в этом нет ничего странного. Есть и очень банальные традиционные файлы с заглавными буквами, такие как .Xclients и .Xauthority.

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

Я поклонник camel case (он же camelCase) и использую его в именах файлов, например, /home/goldilocks/blueSuedeShoes - неважно, что там внутри. Определенно, это вопрос личных предпочтений, но мне еще не приходилось сталкиваться с этим.

Файлы классов Java по своей природе содержат заглавные буквы, потому что имена классов Java имеют такую тенденцию. И, конечно, не будем забывать о NetworkManager, даже если некоторые из нас предпочли бы.


1. Существует гораздо более разграниченный, рекомендованный POSIX "Portable Filename Character Set", который не включает пробел - но он включает верхний регистр! POSIX также определяет более общее ограничение относительно "символа косой черты и нулевого байта" в другом месте того же документа. Это отражает, или отражено в давно сложившейся общепринятой практике.

0
28.03.2018, 15:39
1 ответ

Мне подходит.

% cat facts.yml
#!/usr/bin/env ansible-playbook
- name: test
  hosts: somehost.example.edu
  tasks:
  - debug: var=ansible_kernel

  - shell: "echo {{ ansible_kernel }} > /tmp/thisisverybaddonotuse"
%./facts.yml

PLAY [test] ***

TASK [Gathering Facts] ***
ok: [somehost.example.edu]

TASK [debug] ***
ok: [somehost.example.edu] => {
    "ansible_kernel": "3.10.0-693.21.1.el7.x86_64"
}

TASK [command] ***
changed: [somehost.example.edu]

PLAY RECAP ***
somehost.example.edu  : ok=3    changed=1    unreachable=0    failed=0

% ssh somehost.example.edu "cat /tmp/thisisverybaddonotuse"
3.10.0-693.21.1.el7.x86_64

Возможно, вы не собираете факты или иным образом делаете что-то, что неясно из ограниченной информации в вашем сообщении.

0
28.01.2020, 04:27

Теги

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