запустить tcsh, но вместо этого запущен bash

2781

Я попытался запустить tcsh на моем Fedora 7 (оболочка по умолчанию bash)

[ss@ssvm ~]$ tcsh [ss@ssvm ~]$ echo $SHELL /bin/bash 

Как видите, началась другая оболочка bash.

Я посмотрел на файл tcsh:

[ss@ssvm ~]$ ll /bin/tcsh -rwxr-xr-x 1 root root 345348 2007-02-26 23:58 /bin/tcsh [ss@ssvm ~]$ ll /bin/csh lrwxrwxrwx 1 root root 4 2010-03-07 13:13 /bin/csh -> tcsh 

Это не ссылка (но csh есть). Я не понимаю, почему это происходит. Пожалуйста, дайте мне знать, если у вас есть идеи или вам нужна дополнительная информация. Спасибо!

XM

1
tsh не запускается, потому что он понимает, насколько крут bash, и пытается скрыть свой стыд. Kristina Brooks 14 лет назад 0
Тогда он забыл изменить свой двоичный файл на ссылку на bash, чтобы он больше не беспокоился ... 14 лет назад 0

3 ответа на вопрос

5
Jeffrey Hantin

Краткий ответ: SHELLпеременная окружения представляет собой оболочку по умолчанию для вашего профиля пользователя, а не оболочку, с которой вы сейчас общаетесь. Используется программами, которые порождают подоболочки.

С другой стороны, проверьте свой .cshrcдля exec bashкоманды. Я делал это на сайте, где пользователям не разрешалось менять оболочку по умолчанию с csh.

Спасибо, Джеффри. Я неправильно понял использование $ SHELL. В файлах rc нет exec bash. На самом деле tcsh был запущен :) Я использовал "echo $ 0", чтобы проверить это, и это действительно tcsh. 14 лет назад 0
0
Dennis Williamson

tcshустанавливает строчную переменную с именем shell:

prompt> echo $shell /usr/bin/tcsh 
Также `ps` расскажет вам, что работает. Dennis Williamson 14 лет назад 0
0
thegeek

попробуйте выполнить echo $ 0, который даст текущее имя вашей оболочки. см. это для получения дополнительной информации о смене оболочек

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