Προς το περιεχόμενο

Ubuntu ή Fedora Core?


mayrozjack

Προτεινόμενες αναρτήσεις

  • Απαντ. 36
  • Δημ.
  • Τελ. απάντηση
Ρε παιδιά όταν ανοίγετε πχ τον vi και γράφετε ένα script στην αρχή δεν βάζετε #include <stdio.h> ; Aυτή η δήλωση δεν αποτελεί βιβλιοθήκη της C;

Όταν ανοίγεις τον vi και θέλεις να γράψεις script (πχ foo.sh) δεν βάζεις #include αλλά

#!/bin/bash .Κάπου τα έχετε μπερδέψει μου φαίνεται :-)

Το bash είναι ένα shell,η αν θέλετε "command language interpreter",όπως λέει και στο GNU Project.Δεν είναι ούτε editor,ούτε compiler.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Όταν ανοίγεις τον vi και θέλεις να γράψεις script (πχ foo.sh) δεν βάζεις #include αλλά

#!/bin/bash .Κάπου τα έχετε μπερδέψει μου φαίνεται :-)

Το bash είναι ένα shell,η αν θέλετε "command language interpreter",όπως λέει και στο GNU Project.Δεν είναι ούτε editor,ούτε compiler.

 

Ch is an interpretive implementation of C as Unix/MS-DOS shell. ch can also be used as a login shell the same as Unix shells. Ch bridges the gap between the C language and Unix shell. Unix shell commands, such as vi, ls, mv, grep, find, awk, and sed can run in Ch in both Windows and Unix, they are integrated into ch script command. It is designed for both interactive command interpretation and shell programming. Ch is a true VHLL for programming while it retains the shell features such as command-line editing, completion, history, aliases etc. When Ch is used in a single command mode, most features of Ch are the same as conventional Unix shells such as Bourne shell, C shell, and Korn shell, and MS-DOS shell in Windows. However, since Ch is a superset of C, shell scripts written in C and extended Ch shell programming features are much more powerful, efficient and easy to maintain.

 

Ch Shell versus C Shell

 

In terms of shell programming, Ch will be as close to C shell as possible, but no closer. Ch shell is a genuine C shell and portable in Windows and Unix. The semantics of history and alias features in Ch are similar to C-shell. But the syntax is different from C-shell because Ch is a superset of C. The following table highlights the syntax differences between Ch shell and C shell, but with the same semantics.

 

http://www.softintegration.com/docs/ch/shell/

 

Ch is a complete C interpreter. It supports most new features added in C99 and classes in C++. Ch is embeddable in other applications as a C/C++ scripting engine. It is ideal for cross-platform scripting, shell programming, 2D/3D plotting, numerical

computing, and embedded scripting.

C/Ch/C++ allow users to use one language, anywhere and everywhere, for any programming tasks. Ch lowers the barrier for system programmers to do scripting.

 

To παρακάτω δεν είναι ένα πολύ απλό παράδειγμα script;

 

>#include <stdio.h>

#include <unistd.h> 

main() { 

   int return_value;

   printf(''Forking process \n'');

   return_value = fork();

   printf(''The process id is %d   and return value is %d \n",   getpid(), return_value);

   execl(''/bin/ls'ʽ ,  ''ls'ʽ ,  ''-l'',0);

   printf(''This line is not printed \n'');
} 

 

cc fork.c

mv a.out fork.exe

./fork.exe

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

http://www.softintegration.com/docs/ch/shell/

 

To παρακάτω δεν είναι ένα πολύ απλό παράδειγμα script;

 

>#include <stdio.h>

#include <unistd.h> 

main() { 

   int return_value;

   printf(''Forking process \n'');

   return_value = fork();

   printf(''The process id is %d   and return value is %d \n",   getpid(), return_value);

   execl(''/bin/ls'ʽ ,  ''ls'ʽ ,  ''-l'',0);

   printf(''This line is not printed \n'');
} 

 

cc fork.c

mv a.out fork.exe

./fork.exe

 

Λυπάμαι,αλλά όχι.Το παραπάνω είναι ένα απλό παράδειγμα "δημιουργώ το προγραμμα fork σε κώδικα C,το κάνω compile και το εκτελώ"

Το ch είναι ατυχής επιλογή στην προκειμένη περίπτωση,μιας και όπως παρέθεσες,"Ch bridges the gap between the C language and Unix shell" και "In terms of shell programming, Ch will be as close to C shell as possible, but no closer" Από τα γραφόμενα,είναι προφανές πως διαχωρίζει το ch ώς προγραμματιστικό περιβάλλον με ικανότητες shell από ένα "κλασσικό" shell όπως το csh και το bash.

Ένα απλό παράδειγμα shell script είναι το παρακάτω:

#!/bin/bash

#

#

# Script to print user information who currently login , current date & time

#

clear

echo "Hello $USER"

echo "Today is " ;date

echo "Number of user login : " ; who | wc -l

echo "Calendar"

cal

exit 0

 

Eλπίζω αυτό να βοήθησε.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Ίσως αυτό βάλει τα πράγματα σε μια σειρά:

 

There are three shells in common use today: the Bourne Again shell (bash), the Korn shell (ksh), and the C shell (tcsh). All of these shells share a common core set of operations that make life in the Linux system a little easier. For example, all shells allow the output of a process to be stored in a file or "piped" to another process. They also allow the use of wildcards in filenames.

All of these shells come with Linux, but they may not all be installed on your system depending on your selection of optional packages. The names vary a bit between UNIX and Linux systems. The major difference is that /bin/sh is the Bourne shell on a UNIX system but on a Linux system it is a symbolic link to /bin/bash.

The shell that you use is a matter of personal taste based on its power, compatibility, and availability. The Korn shell was designed to be upward compatible with the original UNIX Bourne shell, and incorporates the best features of the Bourne and C shells plus some more of its own. Bash also takes a "best of all worlds" approach, including features from all the other major shells. Bash is the default shell on Linux systems.

Πηγή :Linux for Programmers and Users By Graham Glass, King Ables

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Τα πράγματα μπήκαν σε σειρά ήδη από το αμέσως προηγούμενο του δικού σου post.

 

Αν δείξεις το παρακάτω:

 

>#include <stdio.h>

#include <unistd.h> 

main() { 

   int return_value;

   printf(''Forking process \n'');

   return_value = fork();

   printf(''The process id is %d   and return value is %d \n",   getpid(), return_value);

   execl(''/bin/ls'ʽ ,  ''ls'ʽ ,  ''-l'',0);

   printf(''This line is not printed \n'');
} 

 

...σε έναν προγραμματιστή και τον ρωτήσεις τί είναι, δε θα σου απαντήσει «Ένα script», αλλά κάτι στο ύφος του «Πηγαίος κώδικας σε C ενός προγράμματος που κάνει μπλα-μπλα...»

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.


  • Δημιουργία νέου...