Как я могу сделать псевдоним Bash, который принимает пользовательский ввод?

ls - список содержимого каталога

У вас есть 76 каталогов в / home / blog

drwxrwxr-x - Это разрешения для каждого из них

. число после разрешений - это количество файлов / папок / ссылок в этой папке

После этого текущий пользователь

После этого владелец папок

Далее - Идентификатор группы для группы, к которой принадлежит файл.

Далее - дата и время, когда файл был изменен

Крайний правый вход - это имя папки

Вы можете добавить ls к другим командам, например

ls -a

Отображать скрытые файлы (начиная с.)

Здесь вы можете найти все команды

1
задан 10 January 2018 в 12:22

4 ответа

Это так просто:

myfunctionname(){
  sshpass -p "Passw0rd!" ssh -p 9999 -q -oStrictHostKeyChecking=no user@192.168.1.15 "$@"
}

Это определяет функцию myfunctionname, которая использует аргументы, которые вы даете ей в качестве команд для ssh. Примеры вызовов:

myfunctionname tree
myfunctionname "ls -l; hostname"
myfunctionname ls -l\; pwd         # remember quoting if doing that!

Поместите функцию в ваш файл ~/.bashrc, чтобы сделать ее доступной с каждого нового терминала.

4
ответ дан 22 May 2018 в 15:39
  • 1
    Спасибо, @dessert, он работает. Есть ли способ обойти кавычки вроде: myfunctionname ls -l – elanozturk 10 January 2018 в 01:16
  • 2
    @elanozturk Для этой команды да, но если вы запустите команду, подобную echo $HOME, она должна быть одинарной кавычкой, чтобы локальная оболочка не расширила эту переменную. Поэтому я рекомендую сделать привычку одинарной кавычки любой команды. – wjandrea 10 January 2018 в 04:01
  • 3
    Вы захотите дважды указать $@ в функции, чтобы избежать расщепления слов и глобализации. См. Shellcheck SC2086 – wjandrea 10 January 2018 в 04:05
  • 4
    Что делать, если я хочу запустить команду alias на удаленном компьютере? @Десерт – elanozturk 10 January 2018 в 14:47
  • 5
    @elanozturk Посмотрите на этот вопрос: Почему мой псевдоним не работает над ssh? – dessert 10 January 2018 в 17:11

Это так просто:

myfunctionname(){ sshpass -p "Passw0rd!" ssh -p 9999 -q -oStrictHostKeyChecking=no user@192.168.1.15 "$@" }

Это определяет функцию myfunctionname, которая использует аргументы, которые вы даете ей в качестве команд для ssh. Примеры вызовов:

myfunctionname tree myfunctionname "ls -l; hostname" myfunctionname ls -l\; pwd # remember quoting if doing that!

Поместите функцию в ваш файл ~/.bashrc, чтобы сделать ее доступной с каждого нового терминала.

4
ответ дан 17 July 2018 в 23:29

Это так просто:

myfunctionname(){ sshpass -p "Passw0rd!" ssh -p 9999 -q -oStrictHostKeyChecking=no user@192.168.1.15 "$@" }

Это определяет функцию myfunctionname, которая использует аргументы, которые вы даете ей в качестве команд для ssh. Примеры вызовов:

myfunctionname tree myfunctionname "ls -l; hostname" myfunctionname ls -l\; pwd # remember quoting if doing that!

Поместите функцию в ваш файл ~/.bashrc, чтобы сделать ее доступной с каждого нового терминала.

4
ответ дан 24 July 2018 в 13:59

Это так просто:

myfunctionname(){ sshpass -p "Passw0rd!" ssh -p 9999 -q -oStrictHostKeyChecking=no user@192.168.1.15 "$@" }

Это определяет функцию myfunctionname, которая использует аргументы, которые вы даете ей в качестве команд для ssh. Примеры вызовов:

myfunctionname tree myfunctionname "ls -l; hostname" myfunctionname ls -l\; pwd # remember quoting if doing that!

Поместите функцию в ваш файл ~/.bashrc, чтобы сделать ее доступной с каждого нового терминала.

4
ответ дан 24 July 2018 в 17:02

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

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