2016-03-22 28 views
1

ile birlikte çalışabilir hale getirebilir. Git bash olarak yüklenen GNU bash kullanıyorum. Başlangıçta ben dizini değiştirmek gerekir, bu yüzden böyle yapıyorum:Kabuk, etkileşimli olarak --command seçeneği

"C:\Program Files\Git\bin\sh.exe" --rcfile "./cd.sh" 

Nerede cd.sh sadece cd /d/ komut içerir. Burada her şey iyi çalışıyor. Şimdi cd.sh dosyanın kurtulmak ve bunu interaktif kalmasını istediğiniz henüz bir parametre olarak kabuk komutu geçmesine çalışıyorum, bu yüzden böyle yapıyorum:

"C:\Program Files\Git\bin\sh.exe" -ic "cd /d" 

Bu komutu çalıştırır (ile test echo komutu) ancak sonra çıkar. Neden etkileşimli kalmıyor? man bash itibaren

+0

Sadece normal kabuk başlatma komut dosyasını kullanın? (ör. ".bashrc" veya benzeri ... SHLVL 'deki uygun korumalar ile, sadece bir kez yaptığınızdan emin olmak için.) Veya' sh 'başlatmadan önce dizini değiştirmeyi deneyin. –

+0

@EtanReisner, teşekkürler, @Julien Lopez yanıtından anladığım gibi, 'c' ve 'i' seçeneği birlikte çalışmayacak, değil mi? –

cevap

1

:

tek seçenek olmayan argümanlar olmaksızın ve -c seçeneği olmadan başlatılmış olan bir interaktif kabuk ... man dash itibaren

: Eğer

hayır args mevcutsa ve kabuğun standart girişi bir terminale bağlıysa (veya -i bayrağı ayarlanmışsa) ve -c seçeneği yoksa, kabuk etkileşimli bir kabuk olarak kabul edilir.

+0

Yani "-c" ve "-i" dediğiniz şey birlikte kullanıldığında anlamlı değil mi? –

+0

Yep. '-c' kullanıyorsanız, etkileşimli bir kabuk olmaz. @EtanReisner'ın önerdiği gibi, hedefiniz '~' yerine başka bir dizinde bir terminal açmaksa, komutunuzu '.bashrc' içine ekleyebilirsiniz. –

İlgili konular