Задать вопрос

Работа с alias через скрипт

Раньше не сталкивался с такой бедой. Пишу alias просто в консоли и получаю информацию об alias(ах). Если запускаю через скрипт (т.е. просто в текстовом документе пишу alias и запускаю на выполнение) - ничего не выдает. С другими командами нет проблем, а alias ну никак не хочет через скрипт отрабатывать. Подскажите как быть... (Надо в скрипте проверить есть ли alias для одной команды. Если есть - отменить его, а в конце скрипта применить обратно. Я то всё уже написал. Но выяснилось, что не хочет отрабатывать alias никак....) Что там за особенности?
  • Вопрос задан
  • 3345 просмотров
Подписаться 6 Оценить Комментировать
Решения вопроса 2
merryjane
@merryjane
Системный администратор
В bash можно так:
запустить через bash -i и прописать shopt -s expand_aliases. Тогда не надо делать . $HOME/.bashrc.
То-есть в скрипте это будет выглядеть так:
#!/bin/bash -i
shopt -s expand_aliases
alias
Ответ написан
Комментировать
@xandox
Он не показывает тебе аласы потому, что по умолчанию shell для выполнения скрипта неподгружает rc файлы
Сделай перед вызовом alias
. $HOME/.bashrc #или .zshrc если его используешь и все у тебя будет
➜  ~  alias
-='cd -'
..='cd ..'
...='cd ../..'
1='cd -'
2='cd -2'
3='cd -3'
4='cd -4'
5='cd -5'
6='cd -6'
7='cd -7'
8='cd -8'
9='cd -9'

➜  ~  cat test.sh
#!/usr/bin/env zsh

. $HOME/.zshrc

Al=$(alias)
echo $Al

➜  ~  ./test.sh
-='cd -'
..='cd ..'
...='cd ../..'
1='cd -'
2='cd -2'
3='cd -3'
4='cd -4'
5='cd -5'
6='cd -6'
7='cd -7'
8='cd -8'
9='cd -9'
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@sonik_spb
alias для каждого юзера вроде как свой. Может скрипт работает не от нужного юзера?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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