(комментарий arved был правильным. Это решило мою проблему, но я все еще не понимаю точно, почему, если оператор рекомендовался, так или иначе. Таким образом я отправляю ответ как общественную Wiki. Не стесняйтесь улучшать его, если Вы знаете почему.)
Во-первых, узнайте, какой компилятор используется:
$ cd /usr/ports/devel/gdb && make -V CC
cc
cc
компилятор C по умолчанию, но это должно быть ccache
.
Решить проблему, редактирование /etc/make.conf
и удалите оператор "if"...
.if (!empty(.CURDIR:M/usr/src*) || !empty(.CURDIR:M/usr/obj*))`
... и, конечно, его закрытие .endif
оператор. Затем проблема решена:
$ cd /usr/ports/devel/gdb && make -V CC
/usr/local/libexec/ccache/world/cc
С комментариями я смог найти короткое и красивое решение:
find . -name '*.mkv' | while read f; do echo ffmpeg -i "$f" "${f%.*}.mp4"; done
-121--108681- Целью опции umask
mount
является установка видимых разрешений каждого файла в файловой системе, когда сама файловая система не поддерживает разрешения Unix (обычно разрешения хранятся в файловой системе).
Поэтому umask
параметра mount
существует для NTFS (эта файловая система не поддерживает разрешения Unix), в то время как у нее нет причин для выхода для Ext4 (которая поддерживает разрешения Unix).
bash
: используйте set -o posix; набор
. Опции POSIX позволяют избежать вывода слишком большого объема информации, например, определений функций. объявить -p
также работает.
zsh
: используйте typeset
Переменная среды доступна для дочерних процессов exec ()
(в виде копии. Если родительский процесс изменяет переменную, дочерняя среда не обновляется). Переменная, не относящаяся к среде, доступна только для текущей рабочей оболочки и вложенных оболочек вилки ()
. Это различие присутствует во всех оболочках.
(выполнено благодаря комментариям)
с ZSH
, вы можете использовать набор
, что дает больше информации, чем
Например, тип переменных. Вы все еще можете отфильтровать вывод с помощью GREP
или SED
, в зависимости от того, что вы хотите. Переменные среды помечены как экспортированы
на выходе.
Целью опции umask
mount
является установка видимых разрешений для каждого файла в файловой системе, когда сама файловая система не поддерживает разрешения Unix (обычно разрешения хранятся в файловой системе, когда она его поддерживает).
Поэтому umask
параметра mount
существует для NTFS (эта файловая система не поддерживает разрешения Unix), в то время как у нее нет причин для выхода для Ext4 (которая поддерживает разрешения Unix).
Можно использовать awk
, например,
awk -F'|' 'NR==FNR {a[$1]=$0;next;}; !($1 in a) || ($0 != a[$1]);' File1 File2
На примере File1
и File2
$ awk -F'|' 'NR==FNR {a[$1]=$0;next;}; !($1 in a) || ($0 != a[$1]);' File1 File2
2620|256034|234567|Mission Quality and Wipro Way|||
2621|256034|131021|Mission Quality and Wipro Way|||
2622|256034|131021|Mission Quality|||
-121--73361- Существует множество альтернатив:
printenv
Распечатайте значения указанных переменных среды. Если параметр VARIABLE не указан, для них всех необходимо напечатать пары имени и значения.
env
env - запуск программы в измененной среде
export
Наборов переменной среды. Пометить каждое имя, передаваемое дочерним процессам в среде.....
-p Дисплей выходных данных в форме, которую можно повторно использовать в качестве входных данных.
Если имена не указаны или задан параметр «-p», отображается список экспортированных имен.
набор
также полезен для получения переменных оболочки.
Если требуется дополнительная информация (целочисленная, экспортированная), вместо нее следует использовать
typeset
export имеет преимущество, заключающееся в том, что его выходные данные могут быть немедленно считаны обратно в оболочку.
Наконец, существует
compgen -v
Дисплея возможных дополнений в зависимости от вариантов.
, который показывает все переменные, оболочку и среду, без их значения или дополнительной информации. Для поиска значения переменной потребуется echo $ VARIABLE _ NAME . Но хотя бы список полный. Он принадлежит bash , а не zsh .
Мне просто нужно было перечислить только переменные, а не их значения. Для этого я использовал
env | awk -F '=' '{ print $1 }'
Чтобы все они были в одной строке
env | awk -F '=' '{ print $1 }' | tr '\n' ' '