Почему мой пользовательский сценарий autoremove bash работает хорошо?

Еще один простой вариант - изменить страницу ошибки 404 на статическую страницу, которую вы хотите показать для всех страниц вашего сайта. Итак, найдите эту строку (или что-то подобное) в конфигурационных файлах apache2:

ErrorDocument 404 /errors/not_found.html

И измените «/errors/not_found.html» на: «/index.html"

0
задан 1 June 2017 в 16:15

6 ответов

Вы игнорируете аргументы, которые вы передаете скрипту.

Он должен выглядеть как

#!/bin/bash
apt autoremove --purge "$@"

. "$@" оценивает все аргументы, переданные вашему скрипту в Bash, поэтому, если вы называете это

sudo uninstall-this-shit sudoku cowsay sl

, он будет расширяться до sudoku cowsay sl.

5
ответ дан 22 May 2018 в 22:00
  • 1
    Обычно нет причин использовать $*, "$@" - почти всегда лучший выбор. – muru 1 June 2017 в 16:48
  • 2
    @muru помочь объяснить, почему это? Мне любопытно. – grooveplex 1 June 2017 в 17:21
  • 3
    @muru Спасибо, конечно, ты прав. Я продолжаю смешивать этих двух ... – Byte Commander 1 June 2017 в 17:29
  • 4
    @grooveplex См. tldp.org/LDP/abs/html/internalvariables.html#APPREF - в основном $* дает вам все аргументы как один элемент, тогда как $@ дает вам все аргументы как отдельные элементы. – Byte Commander 1 June 2017 в 17:30
  • 5
    @grooveplex попробуйте этот скрипт: paste.ubuntu.com/24738014 (желательно в папке с некоторыми файлами) – muru 1 June 2017 в 17:39

Вы игнорируете аргументы, которые вы передаете скрипту.

Он должен выглядеть как

#!/bin/bash apt autoremove --purge "$@"

. "$@" оценивает все аргументы, переданные вашему скрипту в Bash, поэтому, если вы называете это

sudo uninstall-this-shit sudoku cowsay sl

, он будет расширяться до sudoku cowsay sl.

5
ответ дан 18 July 2018 в 12:21

Вы игнорируете аргументы, которые вы передаете скрипту.

Он должен выглядеть как

#!/bin/bash apt autoremove --purge "$@"

. "$@" оценивает все аргументы, переданные вашему скрипту в Bash, поэтому, если вы называете это

sudo uninstall-this-shit sudoku cowsay sl

, он будет расширяться до sudoku cowsay sl.

5
ответ дан 24 July 2018 в 19:57

Вам нужно передать аргумент внутри

apt autoremove --purge $1
Спасибо за примечания @muru и @Byte Commander! Для использования всех параметров $@ следует использовать вместо $1 apt autoremove --purge $@
1
ответ дан 22 May 2018 в 22:00
  • 1
    Обратите внимание, что это будет использовать только первый аргумент оболочки. Если вы запустите скрипт, например. sudo uninstall-this-shit sudoku cowsay sl, он удалит только sudoku, но игнорирует cowsay и sl – Byte Commander 1 June 2017 в 16:17
  • 2
    @ByteCommander - спасибо за комментарий, я обновил свой ответ (+1 для вашего ответа) – Yaron 1 June 2017 в 16:21
  • 3
    Как правильно сказал муру в своем комментарии ниже моего ответа, лучше использовать "$@" здесь вместо $*. – Byte Commander 1 June 2017 в 17:31
  • 4
    @ByteCommander - еще раз спасибо за ваши комментарии! – Yaron 1 June 2017 в 17:33

Вам нужно передать аргумент внутри

apt autoremove --purge $1 Спасибо за примечания @muru и @Byte Commander! Для использования всех параметров $@ следует использовать вместо $1 apt autoremove --purge $@
1
ответ дан 18 July 2018 в 12:21

Вам нужно передать аргумент внутри

apt autoremove --purge $1 Спасибо за примечания @muru и @Byte Commander! Для использования всех параметров $@ следует использовать вместо $1 apt autoremove --purge $@
1
ответ дан 24 July 2018 в 19:57
  • 1
    Обратите внимание, что это будет использовать только первый аргумент оболочки. Если вы запустите скрипт, например. sudo uninstall-this-shit sudoku cowsay sl, он удалит только sudoku, но игнорирует cowsay и sl – Byte Commander 1 June 2017 в 16:17
  • 2
    @ByteCommander - спасибо за комментарий, я обновил свой ответ (+1 для вашего ответа) – Yaron 1 June 2017 в 16:21
  • 3
    Как правильно сказал муру в своем комментарии ниже моего ответа, лучше использовать "$@" здесь вместо $*. – Byte Commander 1 June 2017 в 17:31
  • 4
    @ByteCommander - еще раз спасибо за ваши комментарии! – Yaron 1 June 2017 в 17:33

Другие вопросы по тегам:

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