Запустить ShellScript с помощью настраиваемой команды CLI [дубликат]

На этот вопрос уже есть ответ здесь:

У меня есть сценарий оболочки, который я часто использую, чтобы вручную очистить dentries, inodes и кеш страниц в моей оперативной памяти: ramflush.sh

#!/bin/bash
echo " ██▀███   ▄▄▄       ███▄ ▄███▓   "
echo "▓██ ▒ ██▒▒████▄    ▓██▒▀█▀ ██▒  _____ "
echo "▓██ ░▄█ ▒▒██  ▀█▄  ▓██    ▓██░   |   | F"
echo "▒██▀▀█▄  ░██▄▄▄▄██ ▒██    ▒██    |   |  L "
echo "░██▓ ▒██▒ ▓█   ▓██▒▒██▒   ░██▒   |   |   U"
echo "░ ▒▓ ░▒▓░ ▒▒   ▓▒█░░ ▒░   ░  ░   \___|    S       _"
echo "  ░▒ ░ ▒░  ▒   ▒▒ ░░  ░      ░     ||  ____H__  -( (-"
echo "  ░░   ░   ░   ▒   ░      ░        |_'(-------)  '-'"
echo "   ░           ░  ░       ░           |       /"
echo "___________VERSION 1.0______________,-\__..__|_____"
echo " "
read -p "[*] Do you have a need to flush?:    " yn
case $yn in
   [Yy]* ) ;;
   [Nn]* ) echo "[X] Understood."; exit;;
       * ) echo "[X] No input detected. Exiting."; exit;;
 esac

echo " "
echo " <=== OPTIONS ===>"
echo " "
echo "1. Clear RAM Page Cache."
echo "2. Clear Dentries and Inodes."
echo "3. Clear Page Cache, Dentries and Inodes."
echo " "
read -p "[*] Choose what to flush:    " ans

case $ans in
   [1]* ) echo 1 > /proc/sys/vm/drop_caches; echo "[*] Cache Cleared.";;
   [2]* ) echo 2 > /proc/sys/vm/drop_caches; printf "[*]Dentries Cleared.\n[*]Inodes Cleared.\n";;
   [3]* ) echo 3 > /proc/sys/vm/drop_caches; printf "[*]Page Cache Cleared\n[*]Dentries Cleared.\n[*]Inodes Cleared.\n";;
      * ) echo "[X] No input detected. Exiting."; exit;;

esac

Однако постоянно утомительно возвращаться к моему домашнему каталогу, затем заходить в папку и вызывать сценарий. Я также отказываюсь просто выполнять команды вручную, потому что это не поддается дело в том, что я создал скрипт.

Есть ли способ добавить это в мою оболочку bash, чтобы иметь возможность запускать скрипт из любого каталога, просто набрав ramflush для вызова и запустите этот сценарий, аналогично nmap или ping ?

Должен ли я добавить его в диспетчер пакетов и как мне это сделать?

1
задан 13 November 2018 в 01:02

2 ответа

Можно отбросить тот сценарий как ramflush без sh extenion в двух местах:

  1. ~/bin или
  2. /usr/local/bin,

поскольку первый случай включает тот путь .bashrc со строкой export PATH=$PATH:$HOME/bin и другой уже находится в Вашем пути. Теперь можно просто ввести ramflush.

2
ответ дан 3 December 2019 в 06:36

Самый быстрый способ сделать это - использовать псевдоним.

Добавьте это к .bashrc:

alias ramflush='/path/to/your/script/ramflush.sh'

Затем откройте новый терминал или запустите source ~/.bashrc, чтобы перезагрузить конфигурацию Bash.

Теперь вы можете позвонить ramflush в любое место терминала.

3
ответ дан 3 December 2019 в 06:36

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

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