Чи можу я "експортувати" псевдонім до SHELL, який викликав сценарій?


14

Я намагаюся написати скрипт утиліти, який визначає певні псевдоніми.
Моя SHELL є tcsh(не можу це змінити).

Я спробував наступне

#!/bin/tcsh  
alias log 'less ~/logs/log.`date '+%Y%m%d'`''

Тоді я запускаю це так:

./myscript  
log

Вихід, який я отримую: log: Command not found.

Природно, якщо я запускаю його так:

source myscript  
log

Все добре.

Будь-який спосіб це зробити без вказівки source ...?


Ви помістили aliasсвій ~/.cshrcфайл?
qweet

@qweet - Це не моя мета - я хотів чогось динамічного.
RonK

Відповіді:


18

Ви не можете. Запустивши сценарій, ви виконаєте нову оболонку. Псевдоніми батьківський процес не побачить.

Єдиний спосіб, як зазначено, - використовувати sourceтак, що поточна оболонка обробляє ваш файл сценарію (без запуску нового процесу).


2
Дякую - саме так я і подумав - я додам псевдонім до свого .alias, що буде source myscript- Я хотів щось легке, яким можуть поділитися всі члени команди - псевдонім це зробить.
RonK
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.