Как поменять оболочки в скрипте - PullRequest
2 голосов
/ 28 сентября 2010

Оболочка по умолчанию в системе - csh, но я хочу написать скрипт на bash. Как мне написать скрипт, который будет запускать bash, а затем конвертировать обратно в csh в конце.

Я пробовал это, но это не работает:

bash
var=Hello
echo $var
csh

Ответы [ 3 ]

3 голосов
/ 29 сентября 2010

Команда, которую вы ищете, это exit. При наборе текста на клавиатуре используйте exit вместо csh, чтобы вернуться к csh . Когда вы ввели csh, это только начало нового сеанса csh поверх сеансов csh и bash , которые уже запущены.

%bash
$ var=Hello
$ echo $var
Hello
$ exit
exit
%

Как уже говорили другие при использовании сценария:

#! /bin/bash
var=Hello
echo $var
exit # You don't need exit; but it's okay here.
2 голосов
/ 28 сентября 2010

Вам не нужно снова менять оболочки. Когда скрипт запускается, он будет запускаться вложенной оболочкой (которая завершается в конце скрипта), а родительская оболочка не изменяется. Итак, как уже было предложено, единственное, что вам нужно сделать, это убедиться, что скрипт запускается в правильной оболочке, и «shebang» является способом сделать это:

#!/bin/bash
var=Hello
echo $var

Это все, что нужно.

2 голосов
/ 28 сентября 2010

Определите это с помощью ша-бана

#!/bin/bash

в начале вашего файла.

...