OS X Bash 4 terminali çıkışları


0

Standart terminal uygulamasını çalıştıran en son OS X sürümüne sahibim, homebrew üzerinden bash 4.0 ile

Ancak, çıkış komutu içeren bir komut dosyasını çalıştırırsam, komut dosyasından çıkması bekleniyor. Bunun yerine oturum sona erer ve sekmem kaybolur.

Sekmeyi açık tutmak için ayarlarımı değiştirdim, ancak oturumum hala bitiyor ve bunu anladığım gibi standart olmayan bir davranış.

Bunun olmasına ne sebep olabilir?

Bir sidenote olarak, burada benim bash istemi vb.


Senaryoyu . scriptveya ile source scriptmi çalıştırıyorsun ?
glenn jackman,

Birlikte çalıştırmak. script
Tom J Nowell

Yanıtlar:


2

Koştum . script

Bu, betiği mevcut kabuğunuzda çalıştırdığınız anlamına gelir , böylece çıkış mevcut kabuğunuzu öldürür. Bu beklenen bir davranış.

Muhtemelen ya

  1. betiğin yürütme izinlerini ver ( chmod u+x script) ve çalıştır ./script, veya
  2. bash scriptyeni bir kabuk işleminde çalıştırmak için onu çağırmak .

0

Bu benim senaryom:

cat > doExitKeepShell.sh << EOF
#!/bin/bash
sleep 5
exit 0
EOF

ve yürütülebilir:

chmod u+x doExitKeepShell.sh

Çalıştır ve sekme kapanacak.

$: . doExitKeepShell.sh
# wait 5 sec and window get closed

Öylesine çalıştırın ve kabuk ile devam etmek için 5 saniye bekleyin

$: ./doExitKeepShell.sh 
# wait 5 sec till prompt return ;-)

Koş bunu ve çalışmaya devam et

$: . doExitKeepShell.sh &
[1] PID    # <- this is your script in background
# Keep on working

Senaryo tipine gitmek istersen

$: %

Eğer betiğin çalıştırılması sona erdiyse, s.th. bunun gibi

$: %
-bash: fg: job has terminated
[1]+  Done                    ./doExitKeepShell.sh

Birkaç arka plan işiniz varsa yazabilirsiniz

$: % PID
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.