2016-04-21 7 views
-1

Ich arbeite auf Linux-Konsole und muss auf csh-Eingabeaufforderung arbeiten. Die Standard-Eingabeaufforderung ist jedoch bash und ich muss den Befehl csh geben, um den Modus zu ändern. Der Grund für das Wechseln der Eingabeaufforderung ist, dass einige Hintergrunddateien nur in der csh-Eingabeaufforderung ausgeführt werden.Wechsel von Bash zu Csh-Eingabeaufforderung

Beispiel:

-bash-4.1$ ade useview shkanodi_sqlplus_v1 

bash: /usr/local/nde/setup/nderc.csh: line 44: syntax error near unexpected toke                              n `(' 
bash: /usr/local/nde/setup/nderc.csh: line 44: `foreach file (.ndeprodrc .ndevie                              wrc)' 
bash: /etc/skel/cshrc-DEFAULT: line 20: syntax error: unexpected end of file 

Erläuterung: Im obigen Beispiel des Befehl ade useview shkanodi_sqlplus_v1 nicht richtig in Bash-Eingabeaufforderung ausgeführt, und ich habe zum ersten csh Befehl geben und dann den Befehl ausführen. Ich möchte den csh-Befehl umgehen.

+1

Sie führen ' csh' Skripte mit 'bash'. Nicht. Das sind zwei völlig unterschiedliche Programme. – Carpetsmoker

+0

@Carpetsmoker Es war der Hintergrundprozess, der die csh-Skripte ausgeführt hat. Ich weiß, dass das verschiedene Programme sind und wir können keine csh-Skripte mit bash ausführen. Die Absicht ist es, den Befehl csh auszuführen, bevor der Befehl ausgeführt wird, der die csh-Skripte im Hintergrund aufruft. Es wird nun ausgeführt, indem der Befehl csh nur im Hintergrundskript ausgeführt wird. –

Antwort

0

1.Stellen Sie sicher, dass Sie csh installiert haben.

2.Learn die Lage von csh:

which csh 
or  
whereis csh 

Im Folgenden werde ich die Stelle annehmen, ist/bin/bash.

a) Wenn Sie über Administratorrechte verfügen, nur als root ausführen:

usermod -s /bin/csh YOUR_USERNAME 

(your_username mit Ihrem Benutzernamen ersetzen).

b) Wenn Sie nicht adm haben. Rechte, können Sie immer noch nur csh --login bei der Anmeldung ausführen, indem Sie die folgende Zeile am Ende Ihrer .profile setzen (in Ihrem Home-Verzeichnis):

setenv SHELL /bin/bash 
exec /bin/csh --login 

refrence: bash from csh

+0

Danke Ani. Ich habe gerade die Zeile exec/bin/csh am Ende der .bashrc-Datei im Home-Verzeichnis hinzugefügt. Es hat das Problem gelöst. –