Aide pour unix/ c-shell

Fermé
aslauque - 31 déc. 2004 à 23:31
 Pagaille - 4 janv. 2005 à 22:30
bONSOIR ET BONNE ANNEE!!!!!!

j'ai un petit problème pour écrire la ligne de commande en c-shell qui traduit l'expression suivante:
"si le fichier(variable1) existe alors compiler ce fichier en langage C".

voici ce que j'ai fait:
IF test -f "$1"/cc$1/endif

est ce dans le vraie ou completement à côté de la plaque?
merci de votre aide....
encore bonne année 2005 à tous.
A voir également:

8 réponses

personne pour me venir en aide? svp......
0
Je prefere plutot la bash-shell, mais voici les solutions pour les deux:

En bash-shell:
#!/bin/sh
if test -f $1  ; then
    cc $1
else
    echo "Le fichier: "$1" n'existe pas ."
fi


En c-shell:
#!/bin/csh
if ( -f $1 ) then
    cc $1
else
    echo "Le fichier: "$1" n'existe pas."
endif


Il y a d'autre facons de faire mais ces solutions marchent bien.
0
maerci beaucoup de ton aide!!! puis-je te poser encore une petite question!!!!!
-créer une commande qui recherche la chaîne "toto" dans le fichier ecole.txt. On appellera cette commande "find".

voici ce que j'ai fais:
$find/toto/ecole.txt/more


je crois être encore dans le faux..... merci de ton aide et bonne année 2005!!!!
0
"find" c'est pour chercher de fichiers dans un arbre de sous-repertoires.
Toi tu as besoin de grep:
grep toto ecole.txt | more 

Ici le "| more" c'est pour stopper l'affiche a la page entiere si c'est ca ce que tu veux.
Sinon tu fais plus simplement:
grep toto ecole.txt

Apres il y a pleine d'options (regardes "man grep", ou "info grep"). Par exemple pour afficher toutes les lignes qui contiennent "toto" mais pas le mot "bis" tu peux faire avec l'option "-v" et un pipe:
grep toto ecole.txt | grep -v bis


Il y a aussi l'option "-<nombre>" pour afficher quelques lignes autour de l'endroit ou on a trouve "toto", par exemple:
grep -3 toto ecole.txt

affiche toute les endroits avec "toto" mais avec 3 lignes avant et apres
(en total 7 lignes par endroit). Mais attention cette option ne marche qu'a avec le grep de gnu (en linux c'est bon) mais avec les greps des autres unixs (HP, Sun, ...) ca ne marche pas toujours.
0
en unix, les commandes qui permettent d'afficher les messages suivants:
"il est 17:30:03 PM"
\$date+%r 17%m 30 %s03


"nous sommes le wed 20 jun"
bash$date web 20 jun


est ce ça? car j'ai beaucoup de mal en unix!!!!!
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
COUCOU!!!! il y a t-il quelqu'un pour me répondre....merci d'avance
0
juste un petit moment....merci de bien vouloir me venir en aide!!!!!!
0
est ce ça?
Reponse courte: Non. Il faut respecter la syntax des commandes.

car j'ai beaucoup de mal en unix!!!!!
En Linux/Unix il y a la doc, les pages man. Il suffit de taper la commande:
"man <commande>" ou "info <commande>" pour les avoir, (Voir mon poste <4> !)

Ici c'est assez clair:
man date

 ==> 


NAME
date - print or set the system date and time

SYNOPSIS
date [OPTION]... [+FORMAT]
date [OPTION] [MMDDhhmm[[CC]YY][.ss]]

...

FORMAT controls the output. The only valid option for the
second form specifies Coordinated Universal Time. Inter­
preted sequences are:

%% a literal %

%a locale's abbreviated weekday name (Sun..Sat)

%A locale's full weekday name, variable length (Sun­
day..Saturday)

%b locale's abbreviated month name (Jan..Dec)
%B locale's full month name, variable length (Jan­
uary..December)

%c locale's date and time (Sat Nov 04 12:02:33 EST
1989)

%d day of month (01..31)

%D date (mm/dd/yy)

%e day of month, blank padded ( 1..31)

%h same as %b

%H hour (00..23)

%I hour (01..12)

%j day of year (001..366)

%k hour ( 0..23)

%l hour ( 1..12)

%m month (01..12)

%M minute (00..59)

%n a newline

%p locale's AM or PM

%r time, 12-hour (hh:mm:ss [AP]M)

%s seconds since 00:00:00, Jan 1, 1970 (a GNU exten­
sion)

%S second (00..60)

%t a horizontal tab

%T time, 24-hour (hh:mm:ss)

%U week number of year with Sunday as first day of
week (00..53)

%V week number of year with Monday as first day of
week (01..52)

%w day of week (0..6); 0 represents Sunday

%W week number of year with Monday as first day of
week (00..53)

...


Donc pour avoir par exemple, pour afficher:
"Il est 17 heures 40 minutes"
(si c'est a 17h30), il faut taper:
date  +"Il est %H heures %M minutes"


Bien sur si on n'est pas soigneux (ne pas mettre les blancs quand c'est necessaire (avant le "+" !!), si on ne comprend pas que les machins "%H" etc. seront remplaces par les vraies valeurs (pourquoi tu as mis le 17 avant le %m ?), etc.) ca ne marche pas. Quand il y a de blancs dans le FORMAT il faut proteger tout le FORMAT par les "..." comme dans mon exemple (sinon la shell ne sait pas que ca doit rester ensemble).
0
Cher Linuxien nouveau, sache que:
Même si j'ai eu une dizaine de jours de formation Unix il y a maintenant près de 20 ans et que je manipule assez bien la console Linux (car c'est la même que celle d'Unix), j'ai beaucoup apprécié le livre (pas cher) "Linux pour les Nuls".
Je suis sûr que tu résoudrais pas mal de tes problèmes.
Moi c'est ma bible. Je l'ai toujours à coté de ma souris.
Autre chose:
N'oublie pas qu'il faut respecter la syntaxe: surtout il faut des espaces entre la commande et les paramêtres, et entre les paramêtres, sinon la console ne comprend rien.
Ensuite, n'oublie pas que les commandes Linux (comme Unix) sont en minuscules !!!
Enfin, une commande FONDAMENTALE: "man"
Donc si t'as un problème tape : man [nom_de_ta_commande]
amicalementet bon courage !
0