2010-09-28 48 views
3

Je suis en train d'apprendre les scripts shell et d'essayer de créer une variable définie par l'utilisateur dans le script, first:Déclarant utilisateur variable définie dans le langage de script Shell (shell csh)

howdy="Hello $USER !" 
echo $howdy 

Cependant, quand j'exécute le script (./first) Je reçois ceci:

howdy=Hello aaron!: Command not found. 
howdy: Undefined variable. 

Qu'est-ce que je fais mal?

+0

Quelle saveur shell? bash, ksh, zsh, ...? –

+0

Je ne savais pas que cela avait de l'importance, mais csh – Elpezmuerto

+3

Voici une indication de ce qui compte: [Programmation Csh considérée comme nuisible] (http://www.faqs.org/faqs/unix-faq/shell/csh-whynot/). –

Répondre

8

Vous avez deux erreurs dans votre code:

  1. que vous utilisez la syntaxe sh au lieu d'un csh pour définir la variable
  2. vous n'êtes pas échapper à la « ! » caractère (substitution de l'histoire)

Essayez ceci:

#!/bin/csh 

set howdy="Hello $USER \!" 
echo $howdy 
1

csh s'attend à ce que vous set variables. Essayez

set howdy="Hello $USER" 
echo $howdy 
0

Vous faites

howdy=''Hello $USER !'' 

Vous devez placer la chaîne entre guillemets comme:

howdy="Hello $USER !" 

Vous semblez être en utilisant deux guillemets simples en place d'une double citation .

+0

Ce était une faute de frappe lors de la mise en pile débordement, désolé – Elpezmuerto