Как добавить псевдоним, непосредственно не редактируя 'bash_aliases' файл?

как насчет того, чтобы подать файл шаблона въезжают задним ходом как файл данных так, чтобы каждый шаблон нашел по крайней мере одно соответствие, и затем вычитание того от финала сообщило о счете для каждого соответствия

grep -f patterns.in logfile.txt patterns.in | cut -f2 -d':' | sort | uniq -c | awk '{print($1 - 1" "$2)}'
2
03.02.2014, 01:00
4 ответа

Принятие Вас использует bash_aliases (это не необходимо, у Вас могут также быть псевдонимы, определенные в .bashrc среди других мест), можно просто добавить строку к файлу:

printf "alias foo='bar'" >> ~/.bash_aliases

С другой стороны, если Вы только хотите этот псевдоним для текущей сессии, используйте команду псевдонима непосредственно:

alias foo='bar'

Важный

Bash не позволяет псевдонимам быть расширенными (для работы) в сценариях по умолчанию, необходимо будет активироваться expand_aliases опция:

#!/usr/bin/env bash

alias foo='echo "It works!"'
echo "  Alias defined, attempting to use without expand_aliases"
foo

shopt -s expand_aliases
echo "  Attempting to use with expand_aliases"
foo

Если я запускаю скрипт выше, псевдоним foo будет только работать после того, как я активируюсь expand_aliases опция:

$ a.sh
  Alias defined, attempting to use without expand_aliases
/home/terdon/scripts/a.sh: line 5: foo: command not found
  Attempting to use with expand_aliases
It works!
4
27.01.2020, 21:54
  • 1
    поэтому, если я работаю shopt -s expand_aliases, действительно ли это является постоянным? Пока я не полностью переустанавливаю ОС, это останется? Я спрашиваю, потому что я нахожусь на Raspberry Pi; некоторый сброс вещей, когда я перезагружаю. –  evamvid 01.02.2014, 20:39
  • 2
    Кроме того, для подтверждения, если я просто использую команду псевдонима, она также сбросит, после того как я перезагружаю? –  evamvid 01.02.2014, 20:40
  • 3
    @evamvid не, это будет только работать на конкретную сессию. Что Вы пытаетесь сделать? Это - что-то, что Вы хотите сделать однажды в сценарии? Каждый раз Вы загружаетесь? Вы хотите, чтобы псевдоним был доступен сценарию? На нормальной сессии? Объясните, какова Ваша цель конца. –  terdon♦ 01.02.2014, 20:40
  • 4
    я пытаюсь настроить node.js платформу блоггинга под названием Фантом на моем Pi. Это имеет довольно долгую, трудную команду для запуска в производственном режиме. Я хотел сделать псевдоним так, чтобы я мог просто вставить startghost чтобы это запустилось. –  evamvid 01.02.2014, 20:46
  • 5
    @evamvid я не понимаю. Просто вручную редактирование bash_aliases однажды, добавьте соответствующий псевдоним, и Вы сделаны, это будет доступно навсегда. Вы не должны делать этого на каждой начальной загрузке. Для чего был бы сценарий? –  terdon♦ 01.02.2014, 20:51

Просто выполните псевдоним, как Вы были бы в bash_alias.

alias lt='ls -altrch'

Проверьте при помощи команды типа.

type alias
lt is aliased to 'ls -altrch'
1
27.01.2020, 21:54
  • 1
    Стоп! Можно ли сделать это? Примечание =) –  evamvid 01.02.2014, 20:32
  • 2
    , что это не будет работать в сценарии, если Вы не активируетесь expand_aliases, см. мой ответ. –  terdon♦ 01.02.2014, 20:34

Можно также использовать HEREDOCS для добавления нескольких строк также:

(
cat <<EOF
alias ali1='cmds1...'
alias ali2='cmds2...'
EOF
) >> ~/bash_aliases

Вышеупомянутое может быть копией, вставляемой в оболочку.

Результаты

$ more ~/bash_aliases 
alias ali1='cmds1...'
alias ali2='cmds2...'
1
27.01.2020, 21:54

С другой стороны, Вы могли просто сделать новый сценарий, чтобы сделать запуск. Создайте файл,/usr/local/bin/start_node_blog со следующим содержанием:

#!/bin/bash

that_long_fiddly_command_you_mentioned

Затем сделайте

chmod +x /usr/local/bin/start_node_blog

и можно выполнить его после перезагрузки.

0
27.01.2020, 21:54

Теги

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