Terminali kapatmadan komut dosyası nasıl çalıştırılır?


69

Dosyada bir komut dosyası var bla.shve çalıştırılabilir. Ne zaman tıklayın Üzerinde, komut çalıştırılır ve pencere kapanır. Pencerenin açık kalmasını istiyorum .

cmd /k** commandWindows'ta komut gibi bir şey .

PS I do not kullanmak istiyorum pauseama senaryo idam edildi sonra daha komutları yazabilir istiyorum.

Yanıtlar:


81

$SHELLKomut dosyanızın sonuna koyun :

alt metin

Küçük bir kusur: kabuğu gibi gnome-terminalçalışmadığından, bashuygulamayı bir uygulama olarak görür ve terminali kapatmaya çalıştığınızda bununla ilgili bir uyarı görüntüler :

There is still a process running in this terminal
Closing the terminal will kill it.

Bu uyarıyı gizlemenin iyi bir yolunu bulamadım. İsterseniz, çalıştırarak tamamen devre dışı bırakabilirsiniz:

gconftool --set /apps/gnome-terminal/global/confirm_window_close --type boolean false

xtermGnome-terminali yerine kullanıyorsanız bu olmaz ; seni rahatsız etmeli mi?


20
exec $SHELLSadece $SHELLayarları değiştirmeden uyarının kaybolmasını sağlamak yerine kullanabilirsiniz .
Andrea Corbellini

1
Ancak bu çözüm ekstra bir kabuk / işlem yaratır. Bu önlenebilir mi?
lucasvc

Bunu yapmanın bir yolunu bilmiyorum, hayır. Sorun şu ki, ilk bash işlemi bittikten sonra standart GÇ üzerindeki sapınızı kaybedersiniz, bu nedenle bu saplardan geçen bir daemon ile bazı hileler yapmak zorunda kalırsınız;
Stefano Palazzo

10

Gnome Terminalini Kullanma

Gnome-terminal appending komutunu kullanmak, komut dizesinin sonunda bash ve -c seçeneği ile betiği çağırmak çalışır. Örneğin:

gnome-terminal -e "bash -c ~/script.sh;bash"

Bu, aşağıdakileri yapar:

  1. GNOME terminalini açar
  2. script.sh betiğini çalıştırır
  3. komut dosyası bittikten sonra bash komut istemini gösterir.

Gnome-terminal penceresinden pencereyi kapatarak veya bash komut isteminde exit yazabilirsiniz. Veya istediğiniz gibi daha fazla komut yazabilirsiniz.



7

Komut dosyasına erişiminiz varsa, sonuna aşağıdaki kodu da ekleyebilirsiniz:

read

Bu kod kapanmadan önce bir giriş bekleyecek, böylece siz Enter tuşuna basana kadar terminal açık kalacaktır.


1
Sık sık kullanmak bashsonunda, ama readbana sadece pencereyi kapatmak için izin verir ctrl+cveya enteryerine, ctrl+shift+wya alt+f4. Bu, komut dosyanızda hızla yinelendiğinde kullanışlıdır.
hsandt

5

Kullan bash'ın --init-filegeçici boruyla seçeneği:

bash --init-file <(echo './<script_name>')

Ör:

bash --init-file <(echo './bla.sh')

2

Kullanılması xtermve ekleme ;bashkomut dizesi eserlerin sonunda. Örneğin:

xterm -e "bash ~/script.sh;bash"

Bu, aşağıdakileri yapar:

  1. xterm'i açar
  2. betiği çalıştırır script.sh
  3. komut dosyası bittikten sonra bash komut istemini gösterir.

Pencereyi kapatarak xterm penceresinden çıkabilirsiniz veya exitbash komut istemine yazabilirsiniz . Veya istediğiniz gibi daha fazla komut yazabilirsiniz.


1
xterm -e bash --rcfile bla.sh

Bu, betiği yeni bir pencerede çalıştırır ve hatta pencereyi tamamladıktan sonra kontrol etmenizi sağlar.

Ancak yeni pencere ~/.bashrcnormal bla.shyerine yüklenmeyecek , çünkü yerine koştuk . Bu koyarak giderilebilir

. ~/.bashrc

üstünde bla.sh

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.