2010-10-06 2 views
3

Я пишу свой первый скрипт bash, поэтому извините noobie-ness.Шпатлевка закрывается при выполнении сценария bash

Это называется hello.bash, и это то, что он содержит:

#!/bin/bash 
echo Hello World 

Я сделал

chmod 700 hello.bash 

дать себе разрешения на выполнение.

Теперь, когда я печатаю

exec hello.bash 

Мой шпатлевка терминал мгновенно выключается. Что я делаю не так?

+4

'exec' заменяет текущий процесс (вашу оболочку входа) указанным процессом (сценарий bash, который печатает« Hello World »). После того, как hello world script закончен, у вас нет оболочки входа, и вы находитесь там. Попробуйте './Hello.bash', а не' exec hello.bash'. – msandiford

+0

@spong - это ответ на самом деле, вы должны положить его как один! –

ответ

11

Из man page для Exec:

Если команда подается, он заменяет оболочку без создания нового процесса. Если команда не указана, перенаправления могут использоваться для изменения текущей среды оболочки.

Таким образом, ваш сценарий запускается вместо вашего терминала, а когда он выходит, то и ваш терминал. Просто выполните его:

./hello.bash 
+0

спасибо, ваша вторая команда работала – xbonez