Почему не делает моего пользовательского, автоудаляют работу сценария удара хорошо?

Я сделал сценарий удара следующим образом:

#!/bin/bash
echo "this is stand-in for 'sudo apt autoremove --purge'"
echo "Uninstalling ..."
apt autoremove --purge
echo "enjoy your free memory..."

но после превращающийся в исполняемый файл с chmod и выполнение его sudo ./script <package_name>, вывод похож на этот:-

this is stand-in for 'sudo apt autoremove-purge'
Uninstalling ...
Reading package lists... Done
Building dependency tree       
Reading state information... Done
0 upgraded, 0 newly installed, 0 to remove and 3 not upgraded.
enjoy your free memory...

но тот же код, если я работаю с обычной командой:- sudo apt autoremove --purge <package_name>, затем это работает следующим образом:-

Building dependency tree       
Reading state information... Done
The following packages will be REMOVED:
  gstreamer1.0-plugins-base:i386* libaudio2:i386* libcdparanoia0:i386* libdbusmenu-qt2:i386* libgstreamer-plugins-base1.0-0:i386* libgstreamer1.0-0:i386*
  libmng2:i386* libmysqlclient20:i386* libopus0:i386* libqt4-dbus:i386* libqt4-declarative:i386* libqt4-network:i386* libqt4-opengl:i386* libqt4-script:i386*
  libqt4-sql:i386* libqt4-sql-mysql:i386* libqt4-xml:i386* libqt4-xmlpatterns:i386* libqtcore4:i386* libqtdbus4:i386* libqtgui4:i386* libqtwebkit4:i386*
  libtheora0:i386* libvisual-0.4-0:i386* libxss1:i386* libxv1:i386* qt-at-spi:i386* skype* skype-bin:i386* sni-qt:i386*
0 upgraded, 0 newly installed, 30 to remove and 3 not upgraded.
After this operation, 133 MB disk space will be freed.
Do you want to continue? [Y/n] 

Что я пропускаю в своем сценарии?

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

2 ответа

В настоящее время вы игнорируете аргументы, передаваемые сценарию.

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

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

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

sudo uninstall-this-shit sudoku cowsay sl

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

5
ответ дан 3 November 2019 в 04:01

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

apt autoremove --purge $1

Спасибо за примечания @muru и @Byte Commander!

Для использования всех параметров следует использовать $@ вместо $1

apt autoremove --purge $@

1
ответ дан 3 November 2019 в 04:01

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

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