Visualizzazione post con etichetta Ksh. Mostra tutti i post
Visualizzazione post con etichetta Ksh. Mostra tutti i post

domenica 4 maggio 2014

Script to wait until execution of a background process has ended.

Hi all

Today a simple script. 
If you need execute a process (for example script1.sh) and wait his termination to start execution another process (for example script2.sh) here a simple solution :

#!/bin/ksh

echo ' Start script1.sh '

./script1.sh > /dev/null &
VAR=$!
echo 'PID ' $VAR
wait $VAR

echo 'Finish script1.sh' 
echo ' Start script2.sh '

./script2.sh > /dev/null &
VAR=$!
echo 'PID ' $VAR
wait $VAR


echo 'Finish script2.sh' 

An important command for this application is wait which pauses until execution of a background process has ended.

Stay Tuned.

lunedì 24 giugno 2013

Sorting a file with pipe-delimited fields using unix sort

Hi All

Today a simple command to sort a file with pipe-delimited fields.

My file is :

EG|TW|SA|04/05/2009||
EG|NA|EN|02/05/2003||
SS|TW|SA|04/05/2009||
CD|DC|TI|30/12/2004||
ET|EG|TI|02/05/2003||
NI|SS|EN|18/02/2005||
EG|ET|TI|02/05/2003||
IN|ET|TI|21/09/2000||
SS|SS|SA|28/02/2005||
IN|PR|EN|01/11/2003||
PR|TW|SA|04/05/2009||
SS|EN|TN|18/02/2005||
EG|DC|TI|17/09/2010||
EG|EI|SA|04/08/2005||
NA|IN|SA|21/09/2000||

To sort all records by third field.
I can use these simple command :

sort -t"|" -k 3 [file_name]

Where -t is an option where u can explain field separator and with -k you can explain third field.

Stay tuned.





lunedì 29 aprile 2013

How check if a unix script was killed

Hi all

Today a simple mode to check if a process was killed.

It is adding at the end of your script these two rows :

...
...
...
exitvalue=$?
echo  "exit code of my program is " $exitvalue

When script ends it'll show his exit code.
For example if it was killed (kill -9) appears this message :

exit code of my program is  137

The exit code 137  is 128 + 9 so process ended for a "kill -9" command.

This is a table of HPUX Signal :


       Signal  Value    Action   Comment
       -------------------------------------------------------------------------
       SIGHUP     1             Term    Hangup detected on controlling terminal
             or death of controlling process
       SIGINT     2              Term    Interrupt from keyboard
       SIGQUIT     3              Core    Quit from keyboard
       SIGILL     4              Core    Illegal Instruction
       SIGABRT     6              Core    Abort signal from abort(3)
       SIGFPE     8              Core    Floating point exception
       SIGKILL     9              Term    Kill signal
       SIGSEGV    11     Core    Invalid memory reference
       SIGPIPE    13     Term    Broken pipe: write to pipe with no readers
       SIGALRM    14     Term    Timer signal from alarm(2)
       SIGTERM    15     Term    Termination signal



Stay Tuned.

giovedì 17 maggio 2012

Ksh script to remove shared memory

Today a simple script to remove shared memory in ksh :


#!/bin/ksh


#
# Shell Script to remove shared memory MVNO Instance
#


PID=$(ipcs -m | grep 0x000000a[0-9a-b] | awk '{print $2}'|xargs)
for one_pid in ${PID}; do
    ipcrm -m ${one_pid}
    echo 'Removed shm : ' ${one_pid}
done

This script remove all shared memory from address 0x000000a0 to 0x000000ab. You must modify this expression to remove another shared memory.

Stay tuned.


lunedì 5 marzo 2012

Arithmetic calculation on real numbers in Ksh Script

Today a simple program to execute arithmetic calculation with ksh script :

#!/bin/ksh
echo "Enter the Price of the item \$ \c"
read price
echo "What Percentage of discount is available \c"
read per
echo "Your Total Savings are \c"
sav=`echo "scale=3\n(($price * $per) / 100)" | bc -l`
echo $sav

Is important see this command :

sav=`echo "scale=3\n(($price * $per) / 100)" | bc -l`

With "scale=3" we are fixing number of decimals to print.
With "bc -l" we are calculating with unix command bc the discout applied, with
($price * $per) / 100.

Stay tuned.


Dice simulator

Today a simple shell script to simulate rolls of two dices :

#!/bin/ksh

fc=1

while [ fc -eq 1 ]; do

clear

echo ' How many rolls : \c'
read times

ind=1
while [ $ind -le $times ]; do

echo 'Roll Dice ' $ind
dice1=$RANDOM
dice2=$RANDOM

echo 'dice1 :' $(( dice1%6+1 ))
echo 'dice2 :' $(( dice2%6+1 ))

ind=$(( $ind + 1 ))
done

echo ' Continue(y/n) : \c'
read ans

if [ $ans = 'N' ] || [ $ans = 'n' ]; then
fc=0
fi

done


Stay Tuned.

Check Mid Year Objectives

Hi all Today middle year check of my 2026's goals. 1. ENGLISH Improve listening comprehension (So and So)   See at least one or two film...