Hangi kabuk üzerinde çalışıyorum?


39

Çalıştırdığımda echo $SHELLçıktı diyor /bin/tcshki bu bir tcshkabuk çalıştırdığım anlamına geliyor . Fakat örneğin aşağıdaki komutu verdiğimde

alias emacs 'emacs -nw' 

Aşağıdaki hatayı alıyorum:

bash: alias: emacs: not found
bash: alias: emacs -nw: not found

ve ben alias emacs="emacs -nw"sorunumda iyi çalışıyor!

Çalıştığım için bu kafa karıştırıcı tcshama komutları tarafından yorumlanır bash.

Sebebi ne olabilir?


tcsh/cshiçinde şu anki kabuğu var$shell
HongboZhu,

Yanıtlar:


48

$SHELLmutlaka geçerli kabuğunuz değil, varsayılan giriş kabuğudur . Kullanmakta olduğunuz kabuğu kontrol etmek için

ps $$

Bu ps, BSD sözdizimini destekleyen en son Unix / Linux üzerinde çalışmalıdır . Aksi takdirde, bu taşınabilir (POSIX) yoludur

ps -p $$

Eğer çalışıyorsanız, bunun gibi bir şey döndürmeli tcsh:

8773 pts/10   00:00:00 tcsh

tcshVarsayılan kabuğunuz olmak istiyorsanız , chshayarlamak için kullanın .


Hangi config dosyasının yüklü olduğunu nasıl kontrol edebilirim biliyor musunuz? (hangi bashrc)
coffeMug

@Coffe_Mug ne demek istediğinden emin değil. Sen varsayılan kabuğunu ayarlayabilirsiniz chsh, .bashrci ise kabuğu çalıştıran) sadece okunacak ve ii) bir interaktif olmayan giriş kabuğu olarak çalışan. Bu makineye nasıl giriş yapıyorsunuz?
terdon

Bu bash kabuğunu bir tcsh kabuğundan başlatan bir betiğim var.
coffeMug

4
Neden sadece değilps $$
cjm

1
@cjm neden gerçekten değil, cevap düzenledi.
terdon

8

Komut satırından, $0hangi kabuğu kullandığınızı belirlemek için değişkeni de kullanabilirsiniz . Örneğin:

~$ echo $0
/bin/bash


~$ ksh
$ echo $0
ksh

Not: bir betiğin içinde $ 0 kullanarak kabuğu belirleyemezsiniz, çünkü $ 0 betiğin kendisi olacaktır.


1

Bu Linux için çalışıyor:

lsof -a -p $$ -d txt

veya daha güçlü bir seçime ihtiyacınız varsa (daha fazla sistem):

lsof -a +D /bin +D /usr/bin -p $$ -d txt

1

Bu, yukarıdaki tüm daha iyi cevaplarda yapılan bir değişikliktir. Bir noktada kısa çizgi belirleme sorunum vardı; paylaşmak için doğru gibiydi:

curl -fsSL http://www.in-ulm.de/~mascheck/various/whatshell/whatshell.sh | sh
ash (dash 0.5.5.1 ff)

curl -fsSL http://www.in-ulm.de/~mascheck/various/whatshell/whatshell.sh | bash
bash 4.3.30(1)-release

Dar noktalarda sorun gidermeye iyi gelir, hepsi bu. Şerefe.

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.