Что такое * .sorted команда и почему она не работает в моем bash?

В Bash Guide for Beginners ( раздел 3.2.1.2. Локальные переменные ) есть примерная команда, которая должна отображать все локальные переменные, которые не входят в переменные окружения, или, как я полагаю,

diff set.sorted printenv.sorted | grep "<" | awk '{ print $2 }' 

Теперь я считаю, что я все понимаю об этой команде, кроме *.sorted part. Кроме того, эта команда не работает на моем Bash специально из-за вышеперечисленных элементов. Вот ответ (это полис Нет такого файла или каталога ):

 diff: set.sorted: Nie ma takiego pliku ani katalogu diff: printenv.sorted: Nie ma takiego pliku ani katalogu 

Стоит отметить, что я использую Ubuntu 14.04 без каких-либо изменений в установке по умолчанию.

В любом случае из-за этого я не могу проанализировать эту команду в своем Bash и не смог найти что-либо об этом в Google, кроме самого учебника, из которого я взял эту команду.

Буду благодарен за подробное объяснение, так как раньше я никогда не встречал такого выражения.

One Solution collect form web for “Что такое * .sorted команда и почему она не работает в моем bash?”

Они не являются выражениями, они являются именами файлов для файлов, созданных следующим образом:

  printenv | sort > printenv.sorted set | sort > set.sorted 

Это не ясно из документации, поэтому ваша путаница понятна!

Обратите внимание, что вам может потребоваться помощь diff и grep , заставляя их обрабатывать свои входы как текст (с -a ); переменные среды могут содержать значения, которые заставят их обрабатывать их вход как двоичные, что не принесет ничего полезного:

 diff -a set.sorted printenv.sorted | grep -a "<" | awk '{ print $2 }' 

Еще лучше, используйте comm для сравнения двух файлов:

 comm -23 set.sorted printenv.sorted 

Вы можете заменить файлы на замещения процесса:

 comm -23 <(set|sort) <(printenv|sort) 

чтобы избежать создания файлов.

  • Удалить всю переменную окружения и загрузить rcfile
  • Обновление функций оболочки и псевдонимов через переменные среды
  • Как установить путь к использованию приложений OSX
  • awscli не может видеть переменные среды, но только из cron?
  • Переменные системной среды, не появляющиеся в sudo
  • Linux http_proxy env vars и веб-соединение Firefox
  • Zsh: export: недействительно в этом контексте
  • Как я могу открыть JAVA_HOME для приложений, работающих под X и / или Gnome?
  • Как проверить программные переменные среды SLURM?
  • bash set env variable не работает в pdsh
  • Как назначить переменные среды параллельно в bash
  • Interesting Posts
    Linux и Unix - лучшая ОС в мире.