Что делает $ #, означают в оболочке?

Если Вы хотите остроту для этого, используйте zsh. Это немного загадочно, как самое усовершенствованное использование спецификаторов шарика.

echo *(/e\''set -- $REPLY/**/*(Nm-30[1]); ((!$#))'\')

Внешний шарик соответствует только каталогам (/) таким образом, что выражение (e) в singlequotes верно. Выражение использует каталог соответствия ($REPLY) и взгляды под ним (**/) для файлов, измененных за прошлые 30 дней (m-30), не вызывая ошибку, если никакой файл не соответствует (N), и только сохраняя первое соответствие ([1]). Выражение верно, если там не идет ни в какое сравнение.

Другой метод должен перечислить каталоги с недавними файлами, затем взять дополнение списка.

comm -13 <(find . -mtime -30 | sed -e '/^\.$/ d' -e 's~^\./~~' -e 's~/.*~~' | sort -u) \
         <(find . -type d -name . -o -prune -print | sed -e 's~^\./~~')

25
31.03.2014, 19:09
3 ответа
[119303] Вы всегда можете проверить man-страницу вашей оболочки. [119627]man bash[119628] говорит:

Spoofing (of user identity)
Tampering
Repudiation
Information disclosure (privacy breach or Data leak)
Denial of Service (D.o.S.)
Elevation of privilege

Следовательно, скрипт оболочки может проверить, сколько параметров задано с таким кодом:

37
27.01.2020, 19:40
[119307]То есть

количество параметров, с которыми был вызван скрипт

количество параметров, которые были установлены в скрипте с помощью [119822]set -- foo bar

(при использовании внутри функции) количество параметров, с которыми была вызвана функция ([119824]set[119825] будет работать и там).

Это объясняется на странице bash man в блоке "Специальные параметры".[119312].

8
27.01.2020, 19:40

Фактически,

`$` refer to `value of` and
`#` refer to `number of / total number`

Итак вместе

`$#` refer to `The value of the total number of command line arguments passed.`

Таким образом, вы можете использовать $ # , чтобы проверить количество переданных аргументов / параметров, как вы это делали, и обработать любые непредвиденные ситуации.

Точно так же у нас есть

`$1` for `value of 1st argument passed`
`$2` for 'value of 2nd argument passed`

и т. Д.

12
27.01.2020, 19:40

Теги

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