Buon linguaggio di programmazione, ma facile?
Moderatori:
Paolino,
fairyvilje
2
voti
isd88 ha scritto:Con i comandi della shell dos ci programmi ci vedi le cartelle dei vecchi PC... molto utile invece è imparare i comandi della shell di linux
La shell di DOS è molto limitata ma non esageriamo.
- Codice: Seleziona tutto
@echo off & setlocal ENABLEEXTENSIONS
call :GetDate y mt d
call :GetTime h m s t
:: ***** PLEASE, SET THE FOLLOWING ENVIRONMENT BEFORE RUNNING *****
set ORACLE_SID=ABCD
set MYHOST=%COMPUTERNAME%
set BCKSRV=XXYYY
set BCKTOOLDIR=d:\oracle\tools\backup
SET BACKUPSET=%MYHOST%_%ORACLE_SID%_%y%%mt%%d%
set BACKUPDIR=W:\%BACKUPSET%
set ORACLE_HOME=D:\oracle\ora10gR2
:: *************************
:: * Starting backup job *
:: *************************
cd %BCKTOOLDIR%
:: *** Checking if Oracle database is available ***
echo select status from v$instance; | sqlplus -s "/ as sysdba" | findstr /c:"OPEN" > nul
if errorlevel 1 (echo DATABASE %ORACLE_SID% is NOT AVAILABLE: BACKUP JOB ABORTED! > logs\ERROR-%y%%mt%%d%-%h%%m%%s%.LOG&exit /B)
:: *** Checking if backup server is available ***
ping %BCKSRV% -n 5 -w 1000> nul
if errorlevel 1 (echo SHARED FOLDER on %BCKSRV% is NOT AVAILABLE > logs\ERROR-%y%%mt%%d%-%h%%m%%s%.LOG&exit /B)
:: *** Mounting shared folder on backup server ***
start /wait net use w: \\%BCKSRV%\ORABACKUP /USER:oracle
:: *** Creating lock file for this node on backup folder ***
echo. 2> w:\%BACKUPSET%.LCK
:: *** Checking and creating directories
REM IF EXIST %BACKUPDIR% MOVE /Y %BACKUPDIR% %BACKUPDIR%.OLD
IF NOT EXIST %BACKUPDIR%\datafiles echo "Creating directory..." && md %BACKUPDIR%\datafiles
IF NOT EXIST %BACKUPDIR%\configfiles echo "Creating directory..." && md %BACKUPDIR%\configfiles
IF NOT EXIST %BACKUPDIR%\controlfile echo "Creating directory..." && md %BACKUPDIR%\controlfile
IF NOT EXIST %BACKUPDIR%\scripts echo "Creating directory..." && md %BACKUPDIR%\scripts
IF NOT EXIST %BACKUPDIR%\redologs echo "Creating directory..." && md %BACKUPDIR%\redologs
IF NOT EXIST %BACKUPDIR%\archivedlogs echo "Creating directory..." && md %BACKUPDIR%\archivedlogs
IF NOT EXIST %BACKUPDIR%\backuplogs echo "Creating directory..." && md %BACKUPDIR%\backuplogs
set BACKUPLOG=%BACKUPDIR%\backuplogs\bck-%y%%mt%%d%-%h%%m%%s%.log
call :sleep 5
:: **** Perform Hot Backup of tablespaces ****
:: ** This SQL creates also an environment script **
:: ** (env.bat), which is launched afterwards **
sqlplus -s "/ as sysdba" @%BCKTOOLDIR%\oraback.sql %BACKUPSET% > %BACKUPLOG%
:: **** Setting some Oracle environment ****
call env.bat
:: **** Copying Database trace file ****
FOR /F "delims=" %%F in ('dir %UDUMPDIR%\*.trc /OD /A-D /B') do set trcfile=%UDUMPDIR%\%%F
copy /v /y %trcfile% %BACKUPDIR%\scripts\restore_trc.txt && echo "Copied %trcfile%" >> %BACKUPLOG%
:: **** Copying archived logs ****
FOR /F "tokens=*" %%F in ('dir %ARCHDIR%\*.* /O-D /A-D /B') DO echo %ARCHDIR%\%%F >> archlogs.lst
FOR /F "delims=" %%F in ('more ^< archlogs.lst') DO copy /v /y %%F %BACKUPDIR%\archivedlogs && echo "Copied %%F" >> %BACKUPLOG%
:: **** Deleting all archived logs but the newest one ****
FOR /F "delims= skip=1" %%F in ('more ^< archlogs.lst') DO del %%F && echo "Deleted %%F" >> %BACKUPLOG%
del archlogs.lst
:: **** Copying backup logfile to logs directory ****
copy /v /y %BACKUPLOG% logs
:: *** Deleting lock file for this node on backup folder ***
del W:\%BACKUPSET%.LCK
call :sleep 5
start /wait net use w: /delete
goto :EOF
:: ************* FUNCTIONS ****************
:GetDate yy mm dd
set t=2&if "%date%z" LSS "A" set t=1
for /f "skip=1 tokens=2-4 delims=(-)" %%a in ('echo/^|date') do (
for /f "tokens=%t%-4 delims=.-/ " %%d in ('date/t') do (
set %%a=%%d&set %%b=%%e&set %%c=%%f))
endlocal&set %1=%yy:~2%&set %2=%mm%&set %3=%dd%&goto :EOF
:GetTime hh mm ss tt
for /f "tokens=5-8 delims=:. " %%a in ('echo/^|time') do (
set hh=%%a&set mm=%%b&set ss=%%c&set cs=%%d)
if 1%hh% LSS 20 set hh=0%hh%
endlocal&set %1=%hh%&set %2=%mm%&set %3=%ss%&set %4=%cs%&goto :EOF
:sleep
@ping 127.0.0.1 -n %1% -w 1000> nul
endlocal
goto :EOF
Il listato mostra uno script in shell di DOS, che girava su una macchina Windows 2000; lo script, abbinato ad un altro paio di scripts, consentiva di fare il backup a caldo su nastro magnetico di un database Oracle, in modalità client/server.
Per dare l'idea delle limitazioni della shell di DOS rispetto ad una shell Linux, qui sotto una "funzione" in shell DOS per ricavare l'ora:
- Codice: Seleziona tutto
:GetTime hh mm ss tt
for /f "tokens=5-8 delims=:. " %%a in ('echo/^|time') do (
set hh=%%a&set mm=%%b&set ss=%%c&set cs=%%d)
if 1%hh% LSS 20 set hh=0%hh%
endlocal&set %1=%hh%&set %2=%mm%&set %3=%ss%&set %4=%cs%&goto :EOF
la stessa istruzione in bash di Linux sarebbe qualcosa del tipo
- Codice: Seleziona tutto
date +%y%m%d-%H%M%S
0
voti
lungi dal mettere in dubbio l'utilità della shell DOS ( che per inciso significa Dirty Operative System perché creato in 3 mesi da un programmatore geniale quando pazzoide per tutt'altro motivo che la commercializzazione a livello globale dell'architettura dominante dei PC , maquesta è un'altra storia ) però io non lo consideravo un linguaggio di programmazione quanto un linguaggio di scripting. Anzi mi stupisco di quante cose si possano fare, io ci so solo guardare le Dir e lanciare programmi. La shell linux invece è molto più moderna direi ( gia l'editor vi incorporato mi fa impazzire ) ma anche questo non è un linguaggio di programmazione. Insomma come si fa a scegliere un linguaggio senza sapere cosa se ne deve fare ?? 
1
voti
isd88 ha scritto:gia l'editor vi incorporato
l'editor vi non è "incorporato" nella shell. È un software, come tanti altri, senza interfaccia grafica.
in /dev/null no one can hear you scream
0
voti
isd88 ha scritto:shell DOS [...] io non lo consideravo un linguaggio di programmazione quanto un linguaggio di scripting. [...] La shell linux invece è molto più moderna direi ( gia l'editor vi incorporato mi fa impazzire ) ma anche questo non è un linguaggio di programmazione. Insomma come si fa a scegliere un linguaggio senza sapere cosa se ne deve fare ??
Scusa, quali sarebbero i requisiti di un linguaggio per essere di programmazione? E, secondo tali specifiche, perché le shell di DOS e Linux non sarebbero linguaggi di programmazione?
Per chiarezza, vi non è incorporato nella shell (sarebbe un built-in) ma è un pacchetto indipendente, come annticipato da
Per imparare, comunque, un linguaggio vale quasi l'altro; dopo essersi chiariti i concetti base, si focalizzano le idee ed i gusti.
0
voti
va be comunque va insieme alla shell..... errore mio ma trascurabile 
comunque tra il C e i comandi DOS io direi che il C è un linguaggio di programmazione perche posso farci eseguibili per varie piattaforme compilando il mio codice. Gli script per DOS sono tali e tali restano. Sbaglio qualcosa? resta il fatto che è solo un opinione personale , non me ne intendo molto di programmazione (ma il vi ovunque vado lo trovo
)
comunque tra il C e i comandi DOS io direi che il C è un linguaggio di programmazione perche posso farci eseguibili per varie piattaforme compilando il mio codice. Gli script per DOS sono tali e tali restano. Sbaglio qualcosa? resta il fatto che è solo un opinione personale , non me ne intendo molto di programmazione (ma il vi ovunque vado lo trovo
2
voti
Python? 
Per usare un simulatore devi conoscere più elettronica di lui. [
IsidoroKZ]
40. There are two ways to write error-free programs; only the third one works.
[Alan J. Perlis, Epigrams on Programming]
40. There are two ways to write error-free programs; only the third one works.
[Alan J. Perlis, Epigrams on Programming]
1
voti
isd88 ha scritto:va be comunque va insieme alla shell..... errore mio ma trascurabile
Si "pretende" un minimo di precisione, anche nei termini, e dire che vi "va insieme alla shell"... per usare un eufemismo, è un'imprecisione tutt'altro che trascurabile.
in /dev/null no one can hear you scream
Chi c’è in linea
Visitano il forum: Nessuno e 19 ospiti

Elettrotecnica e non solo (admin)
Un gatto tra gli elettroni (IsidoroKZ)
Esperienza e simulazioni (g.schgor)
Moleskine di un idraulico (RenzoDF)
Il Blog di ElectroYou (webmaster)
Idee microcontrollate (TardoFreak)
PICcoli grandi PICMicro (Paolino)
Il blog elettrico di carloc (carloc)
DirtEYblooog (dirtydeeds)
Di tutto... un po' (jordan20)
AK47 (lillo)
Esperienze elettroniche (marco438)
Telecomunicazioni musicali (clavicordo)
Automazione ed Elettronica (gustavo)
Direttive per la sicurezza (ErnestoCappelletti)
EYnfo dall'Alaska (mir)
Apriamo il quadro! (attilio)
H7-25 (asdf)
Passione Elettrica (massimob)
Elettroni a spasso (guidob)
Bloguerra (guerra)








