Форум русскоязычного сообщества Ubuntu


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

Автор Тема: alias для команд из файла  (Прочитано 1352 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн falsekeel

  • Автор темы
  • Новичок
  • *
  • Сообщений: 10
    • Просмотр профиля
alias для команд из файла
« : 15 Ноября 2017, 19:58:27 »
Суть проблемы такова. Есть файл missfont.log с примерно таким содержанием:
mktextfm larm2074
mktextfm labx2074
mktextfm larm1440
....
где mktextfm -- имя утилиты из TexLive, всё остальное необходимые шрифты. Я хочу воспользоваться этой утилитой из TexLive 2017 следовательно надо вместо mktextfm иметь:
/usr/local/texlive/2017/bin/x86_64-linux/mktextfm
Запуск таких команд не приводит к желаемому результату:
alias mktextfm=/usr/local/texlive/2017/bin/x86_64-linux/mktextfm
sh missfont.log
всё равно вызывается штатная утилита mktextfm. Подскажите, как заставить alias работать для команд из файла?

Оффлайн ALiEN

  • Администратор
  • Старожил
  • *
  • Сообщений: 7347
  • Luck Tales
    • Просмотр профиля
Re: alias для команд из файла
« Ответ #1 : 15 Ноября 2017, 20:08:54 »
sh missfont.log
chmod +x missfont.log; ./missfont.log
(Нажмите, чтобы показать/скрыть)
🖥 AsRock B550M Pro4 :: AMD Ryzen 5 3600 :: 16 GB DDR4 :: AMD Radeon RX 6600 :: XFCE
💻 ACER 5750G :: Intel Core i5-2450M :: 6 GB DDR3 :: GeForce GT 630M :: XFCE

Оффлайн falsekeel

  • Автор темы
  • Новичок
  • *
  • Сообщений: 10
    • Просмотр профиля
Re: alias для команд из файла
« Ответ #2 : 15 Ноября 2017, 20:36:33 »
Спасибо, так должно заработать. но теперь не нравится сам alias. пишет:
make fonts
alias mktextfm=/usr/local/texlive/2017/bin/x86_64-linux/mktextfm
make: alias: Команда не найдена
makefile:17: ошибка выполнения рецепта для цели «fonts»
make: *** [fonts] Ошибка 127
цель fonts в мэйкфайле.

Пользователь добавил сообщение 15 Ноября 2017, 20:41:02:
fonts:
alias mktextfm=/usr/local/texlive/2017/bin/x86_64-linux/mktextfm
chmod +x missfont.log
./missfont.log
rm missfont.log
« Последнее редактирование: 15 Ноября 2017, 20:41:02 от falsekeel »

Оффлайн ALiEN

  • Администратор
  • Старожил
  • *
  • Сообщений: 7347
  • Luck Tales
    • Просмотр профиля
Re: alias для команд из файла
« Ответ #3 : 15 Ноября 2017, 20:44:15 »
falsekeel, а make откуда?  :o
alias должен быть прописан в .bash_aliases (.bashrc) и не вызываться отдельно.

если у вас там какой-то самописный скрипт, то используйте полный путь
/usr/local/texlive/2017/bin/x86_64-linux/mktextfm
а не mktextfm
и никаких алиасов не надо


Пользователь добавил сообщение 15 Ноября 2017, 20:50:45:
sed 's|^mktextfm|/usr/local/texlive/2017/bin/x86_64-linux/mktextfm|' missfont.log | sh
« Последнее редактирование: 15 Ноября 2017, 20:50:45 от ALiEN175 »
🖥 AsRock B550M Pro4 :: AMD Ryzen 5 3600 :: 16 GB DDR4 :: AMD Radeon RX 6600 :: XFCE
💻 ACER 5750G :: Intel Core i5-2450M :: 6 GB DDR3 :: GeForce GT 630M :: XFCE

Оффлайн falsekeel

  • Автор темы
  • Новичок
  • *
  • Сообщений: 10
    • Просмотр профиля
Re: alias для команд из файла
« Ответ #4 : 15 Ноября 2017, 21:03:29 »
missfonts.log сгенерирован автоматически, желания копировать в консоль построчно с добавлением пути разумеется нет. заморачиваюсь мэйкфайлом потому что удобнее написать
make fonts
чем:
alias mktextfm=/usr/local/texlive/2017/bin/x86_64-linux/mktextfm
chmod +x missfont.log
./missfont.log
rm missfont.log
Надо понимать в мэйкфайлах алиасы принципиально не работают?
Не хочу писать в ~/.bashrc т.к. постоянно этот алиас мне не нужен.

Пользователь добавил сообщение 15 Ноября 2017, 21:13:01:
прописал alias отдельно, проконтролировал командой
alias -p
строчка добавилась. но при попытке запуска missfont.log в консоли:
mktextfm: Running mf-nowin -progname=mf \mode:=ljfour; mag:=1; nonstopmode; input larm2074
This is METAFONT, Version 2.7182818 (TeX Live 2015/Debian) (preloaded base=mf)
т.е. mktextfm из пакета 2015г. всё-таки alias не сработал.

Пользователь добавил сообщение 15 Ноября 2017, 21:22:30:
Код: [Выделить]

sed 's|^mktextfm|/usr/local/texlive/2017/bin/x86_64-linux/mktextfm|' missfont.log | sh

А это прокатило. спасибо!
Это тяжелая артиллерия)) буду разбираться с командой sed
« Последнее редактирование: 15 Ноября 2017, 21:22:30 от falsekeel »

 

Страница сгенерирована за 0.054 секунд. Запросов: 23.