bash як --init-файл у tcsh


1

bash/screenсценарій:

screen -dmS sessionname -c /path/to/screenrc

/path/to/screenrcмістить, наприклад ,

screen -t windowtitle1 bash --init-file /path/to/window1.bashinit
screen -t windowtitle2 bash --init-file /path/to/window2.bashinit
screen -t windowtitle3 bash --init-file /path/to/window3.bashinit

наприклад це

  • починає screenсеанс у відірваному режимі
  • screenвиконайте певніscreenrc
  • від screenrc
    • запускає 3 різні інтерактивні bashвікна
    • і кожен bash виконує зміст визначеного init-file
    • а після їх виконання bashпродовжуйте в інтерактивному режимі (!)

Отже, наприкінці я отримав

  • відірваний screenсеанс
  • з 3-разовим запуском bashв інтерактивному режимі
  • і кожен з них вже виконав деякі команди (визначені в своїх init-file)

Як досягти однакової функціональності з tcsh?

Відповіді:


2

Вам не потрібно змушувати tcshробити роботу, яка screenможе зробити замість вас. Просто запустіть 3 вікна:

cat <<\! >/path/to/screenrc
screen -t windowtitle1 tcsh
screen -t windowtitle2 tcsh
screen -t windowtitle3 tcsh
!
screen -dmS sessionname -c /path/to/screenrc

потім введіть (тобто "введіть") команду init у кожне вікно:

screen -p windowtitle1 -X stuff 'source /path/to/window1.tcshinit\n'
screen -p windowtitle2 -X stuff 'source /path/to/window2.tcshinit\n'
screen -p windowtitle3 -X stuff 'source /path/to/window3.tcshinit\n'

Це чудово. Просто замість \ni я повинен використовувати ^ M ( CTRL-V CTRL-M), інакше я просто потрапив у вікно: source /path/to/window1.tcshinit\n(з літералом \n) і sourceкоманда не виконується.
jm666

добре, добре знати. Я спробував, \nі \rвони обоє, здавалося, спрацювали. Я не впевнений, чому вони не для вас, можливо, різні версії інструментів.
meuh

1

Наскільки я знаю, ви не можете, не прямо.

Що ви можете зробити , це створити win1.tcsh, win2.tcshі т.д. з вмістом:

echo Starting win1
setenv WINDOW 1
exec tcsh

Закликайте це як tcsh -c 'source win1.tcsh'і у вашому tcshrcзробіть щось на кшталт:

if ( $WINDOW == "1" ); then
   # My custom commands...
endif
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.