Что делает '$variable набора', делают?

Можно использовать xargs получить то, что Вы хотите.

find . -type f -print0 | sort -z | xargs -0 -n1 openssl sha512

-n1 опция говорит xargs только позволять одному аргументу быть данным openssl команда. -print0, -z и -0 опции препятствуют тому, чтобы конвейер повредился, если существуют "проблемные" символы (как встроенная новая строка) в именах файлов.

0
04.02.2014, 20:45
2 ответа

set управляет опциями оболочки или позиционными параметрами. От удара запрашивают тип help set

Команда set IFS : установит $1="IFS" и $2=":". Это не изменит значение переменной IFS.

Любые изменения для окружения опций и позиционных параметров не будут сохранены между сессиями удара. Необходимо изменить файлы запуска (.bashrc и др.) для этого.

7
28.01.2020, 02:13
  • 1
    я ввел help set и я не могу сказать, что смог извлечь информацию, в которой я нуждался. Как изменить IFS с набором затем? –  infoholic_anonymous 04.02.2014, 21:07
  • 2
    Вы не изменяете IFS с набором, Вы изменяете IFS путем изменения IFS как любая переменная: IFS="new value" –  glenn jackman 04.02.2014, 22:39

set не используется для управления переменными окружения, это используется для установки опций оболочки. Думайте о нем как об эквиваленте Меню параметров. Так, в то время как некоторые из этих опций могут влиять на путь который bash переменные окружения дескрипторов, это не имеет никакого отношения к установке их.

Так или иначе, если Вы изменяете значение переменной как это:

foo='bar'

Это будет только изменено для Вашей текущей оболочки и не будет влиять ни на что больше. Если Вы используете экспорт, как это:

export foo='bar'

Это будет экспортироваться в Вашу текущую оболочку и все оболочки, запущенные с Вашей текущей оболочки, но это все еще не будет влиять ни на какие оболочки, запущенные вне текущей сессии оболочки. Проиллюстрировать:

$ foo='bar'
$ echo "$foo"
bar
$ bash   ## start a new shell
$ echo "$foo"

$

Второе echo ничего не распечатайте, потому что переменная не была экспортирована в новую оболочку. Если Вы использовали export это имело бы been:\

$ export foo='bar'
$ bash
$ echo "$foo"
bar

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

1
28.01.2020, 02:13

Теги

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