Unix

46
INDEX S.No. PROGRAM NAME Page Sign. No. 1. Write a Shell Script that takes a search string and filename from the 4 terminal & displays the results. 2. Write a Shell Script that takes pattern and filename as command line5 arguments and displays the results appropriately i.e. pattern found/pattern not found. 3. Write a Shell Script that accepts only three arguments from the 6 command line. The first argument is the pattern string, the second argument is the filename in which the pattern is to be searches and the third argument is the filename in which the result is to be stored. 4. Write a Shell Script that accepts a filename as a command line argument 7 and finds out if its a regular file or a directory. If its a regular file, then performs various tests to see if it is readable, writeable, executable etc. 5. Write a Shell Script which creates the following menu and prompts for 8 choice from user and runs the chosen command. Today's date Process of user List of files Quit to UNIX 6. Write a Shell Script that computes the factorial of a given number. 10 7. Write a Shell Script that works like a calendar reminding the user of 11 certain things depending on the day of the week. 8. Write a Shell Script that changes the extension of a group of files from12 txt to doc. 9. Write a Shell Script that accepts both filename and a set of patterns as 13 positional parameters to a script. 10. Write a Shell Script which will redirect the Output of the date command 14 without the time into a file. 11. Write a Shell Script (using while loop) to execute endlessly (until 15 terminated by user) a loop which displays contents of current directory,

description

unix programm file

Transcript of Unix

Page 1: Unix

INDEX S.No. PROGRAM NAME Page Sign.

No.1. Write a Shell Script that takes a search string and filename from the 4

terminal & displays the results.2. Write a Shell Script that takes pattern and filename as command line 5

arguments and displays the results appropriately i.e. pattern found/pattern not found.

3. Write a Shell Script that accepts only three arguments from the 6 command line. The first argument is the pattern string, the second argument is the filename in which the pattern is to be searches and the third argument is the filename in which the result is to be stored.

4. Write a Shell Script that accepts a filename as a command line argument 7 and finds out if its a regular file or a directory. If its a regular file, then performs various tests to see if it is readable, writeable, executable etc.

5. Write a Shell Script which creates the following menu and prompts for 8 choice from user and runs the chosen command.

Today's date Process of user List of files Quit to UNIX

6. Write a Shell Script that computes the factorial of a given number. 107. Write a Shell Script that works like a calendar reminding the user of 11

certain things depending on the day of the week. 8. Write a Shell Script that changes the extension of a group of files from 12

txt to doc. 9. Write a Shell Script that accepts both filename and a set of patterns as 13

positional parameters to a script.10. Write a Shell Script which will redirect the Output of the date command 14

without the time into a file.11. Write a Shell Script (using while loop) to execute endlessly (until 15

terminated by user) a loop which displays contents of current directory,disk space status, sleep for 30 seconds and display the users currentlylogged in on the screen.

12. Write a Shell Script that receives two filenames as arguments. It should 16check whether content of the two files is same or not. If they are same,second file should be deleted.

13. If a number is input through the keyboard, WASS to calculate sum of its 17digits.

14. Write a Shell Script that performs a count-down either from 10 (default) 18or from the value that is entered by the user.

1

Page 2: Unix

15. Write a Shell Script which takes a command line argument of Kms and 19by default converts that number into meters. Also provide options toconvert km to dm and km to cm.

16. Write a Shell Script using for loop, which displays the message 20"Welcome to the UNIX System"

17. Write a Shell Script to change the filename of all files in a directory from 21lower-case to upper-case.

18. Write a Shell Script that examines each file in the current directory. Files 22 whose names end in old are moved to a directory named old files and files whose names end in .c are moved to directory named cprograms.

19. Write a Shell Script which searches all files in the given directory (to be 24 taken as command line argument) for the file having the title (to be taken as command line argument), as the first line in the file.

a)Display the contents of the searched file. b)In the end, print the file is ###, where ### is small-sized if total no. of lines is <50 ### is medium-sized if total no. of lines between 50&100 ### is large-sized.

20. Write a shell script which reports names and sizes of all files in a 25 directory (directory would be supplied as an argument to the shell script) whose size is exceeding 1000 bytes. The filenames should be printed in descending order of their sizes. The total number of such files should also be reported.

21. WASS for renaming each file in the directory such that it will have the 26current shell PID as an extension. The shell script should ensure that thedirectories do not get renamed.

22. WAP to calculate and print the first m Fibonacci numbers. 2723. WASS that will receive any number of filenames as arguments. The 28

shell script should check whether such files already exist. If they do, then it should be reported. The files that do not exist should be created in a sub-directory called mydir. The shell script should first check whether the sub-directory mydir exists in the current directory. If it doesn’t exist, then it should be created. If mydir already exists, then it should be reported along with the number of files that are currently present in mydir.

24. A shell script receives even number of filenames. Suppose four 29 filenames are supplied, then the first file should get copied into second file, the third file should get copied into fourth and so on. If odd number of filenames is supplied then no copying should take place and an error message should be displayed.

25. WASS to identify all zero-byte files in the current directory and delete 30them. Before proceeding with deletion, the shell script should get aconformation from the user.

26. WASS to compute the GCD and LCM of two numbers. 3127. Two numbers are entered through the keyboard. WAP to find the value 32

of one number raised to the power of another.

2

Page 3: Unix

28. WASS that prompts the user for the password. The user has maximum of 333 attempts. If the user enters the correct password, the message “Correct Password” is displayed else the message “Wrong Password”.

29. WASS that repeatedly asks the user repeatedly for the “Name of the 34 Institution” until the user gives the correct answer.

30. WAP to generate all combinations of 1, 2 and 3 using for loop. 35

Page 4: Unix

1. Write a Shell Script that takes a search string and filename from the terminal & displays the results.

3

Page 5: Unix

Ans :

read a read b word=`grep $a $b` if test `echo $word | wc -c` -eq 1 then echo "Pattern not found" else grep $a $b fi

Output :

sh ss1 enter the string to be searched. ashs enter the file name ss2 Pattern not found 2. Write a Shell Script that takes pattern and filename as command line arguments and displays the results appropriately i.e. pattern found/pattern not found.

Ans :

4

Page 6: Unix

if test $# -ne 2 then echo "Invalid no. of arguments" else word=`grep $1 $2` if test `$word|wc -c` -eq 1 then echo "Pattern not found" else grep $1 $2 echo “Pattern Found” fi fi

Output :

sh ss2 Contents ss12 echo "\n" Contents are same Second file is being deleted echo"\n" Contents are different Pattern Found 3. Write a Shell Script that accepts only three arguments from the command line. The first argument is the pattern string, the second argument is the filename in which the pattern is to be searches and the third argument is the filename in which the result is to be stored.

Ans :

5

Page 7: Unix

if test $# -ne 3 then echo "Invalid no. of arguments" else grep $1 $2 |cat>$3 if test -s $3 then echo "Pattern found" cat $3 else echo Pattern not found fi

Output :

sh ss3 echo ss12 output Pattern found echo "\n" Contents are same Second file is being deleted echo"\n" Contents are different echo "\n" File does not exist

cat output echo "\n" Contents are same Second file is being deleted echo"\n" Contents are different echo "\n" File does not exist 4. Write a Shell Script that accepts a filename as a command line argument and finds out if its a regular file or a directory. If its a regular file, then performs various tests to see if it is readable, writeable, executable etc.

Ans :

6

Page 8: Unix

if [ -d $1 ] then echo Its a directory elif [ -f $1 ] then echo file exist if [ -r $1 ] then echo file has read permission echo the contents are... cat $1 else File dont have read permission fi if [ -w $1 ] then echo "\n"File have write permission cat>>$1 else echo you do not have write permission fi if [ -x $1 ] then echo "\n"You have execute permission else echo you do not have Execute permission fi else echo Nothing exist by this name fi Output : $ sh ss4 free file exist file has read permission the contents are... Aditya is studying in BCA 5th Year Enrollment NO. A1004807003 He stays in Model Town File have write permission He is a student You have execute permission$ 5. Write a Shell Script which creates the following menu and prompts for choice from user and runs the chosen command. Today's date Process of user List of files Quit to UNIX

7

Page 9: Unix

Ans :

echo Enter a choice. echo 1. Todayś Date echo 2. Process of user echo 3. List of files echo 4. Quit to unix read ch case $ch in 1)date ;; 2)ps ;; 3)ls ;; 4)exit ;; *)echo invalid Choice ;; esac

Output :

sh SS5 Enter a choice. 1. Todayś Date 2. Process of user 3. List of files 4. Quit to unix

8

Page 10: Unix

1 Thu Nov 20 10:52:32 IST 2008

sh SS5 Enter a choice. 1. Todayś Date 2. Process of user 3. List of files 4. Quit to unix 2 PID TTY TIME CMD6001 pts/0 00:00:00 bash6203 pts/0 00:00:00 sh6204 pts/0 00:00:00 ps

sh SS5 Enter a choice. 1. Todayś Date 2. Process of user 3. List of files 4. Quit to unix 3 cold gold sold ss11 ss14 SS17 ss2 ss22 SS25 SS28 SS30 ss6 SS9 e.txt output ss1 ss12 ss15 ss18 SS20 ss23 SS26 SS29 ss4 ss7 tr.c f1 q.txt ss10 ss13 ss16 SS19 ss21 SS24 SS27 ss3 SS5 ss8 w.txt

sh SS5 Enter a choice. 1. Todayś Date 2. Process of user 3. List of files 4. Quit to unix 4

6. Write a Shell Script that computes the factorial of a given

number.

Ans :

echo "Enter the no. to compute it's factorial" read num i=1 fact=1 while test $i -le $num

9

Page 11: Unix

do fact=`expr $fact \* $i` i=`expr $i + 1` done echo "Factorial of:$num is:$fact"

Output :

sh ss6 Enter the no. to compute it's factorial 6 Factorial of: 6 is: 720 7. Write a Shell Script that works like a calendar reminding the user of certain things depending on the day of the week.

Ans :

a=`date +%A` echo "\n" Welcome Shiva echo "\n" Today is $a echo Your tasks for today is as follows case $a in

10

Page 12: Unix

Monday)echo Complete Unix Assignments ;; Tuesday)echo Take print outs of Unix programs ;; Wednesday)echo Get your Unix practical file properly arranged ;; Thursday)echo Get your Unix file checked ;; Friday)echo Get advance bookings for a movie ;; Saturday)echo Go out for movie ;; Sunday)Sunday is a fun day ;; esac

Output :

sh ss7 Welcome Shiva Today is Thursday Your tasks for today is as follows Get your Unix file checked 8. Write a Shell Script that changes the extension of a group of files from txt to doc.

Ans :

echo Before ls *.txt for i in `ls *.txt` do mv $i `echo $i|cut -f1 -d"."`.doc done echo After

11

Page 13: Unix

ls *.doc

Output :

$ sh ss8 Before d.txt f.txt r.txt After d.doc e?q?w.doc f.doc q?w.doc r.doc w.doc 9. Write a Shell Script that accepts both filename and a set of patterns as positional parameters to a script.

Ans :

fn=$1 shift for i in $* do grep $i $fn done

12

Page 14: Unix

Output :

aditya@ADITYA-PC:~/File$ sh SS9 ss8 txt doc ls *.txt for i in `ls *.txt` mv $i `echo $i|cut -f1 -d"."`.doc ls *.doc aditya@ADITYA-PC:~/File$ 10. Write a Shell Script which will redirect the output of the date command without the time into a file.

Ans :

echo Enter the file name read file a=`date|cut -b 1-11,25-28` echo $a|tee -a $file clear echo "\n"$file sucessfully created echo "\n""Content of file is :"`cat $file`

13

Page 15: Unix

Output :

sh ss10 Enter the file name ss2 Thu Nov 20 2008 ss2 sucessfully created Content of file is :if test $# -ne 2 then echo "Invalid no. of arguments" else word=`grep $1 $2` iftest `echo $word|wc -c` -eq 1 then echo "Pattern not found" else grep $1 $2 fi fi Thu Nov 20200811. Write a Shell Script (using while loop) to execute endlessly (until terminated by user) a loop which displays contents of current directory, disk space status, sleep for 30 seconds and display the users currently logged in on the screen.

Ans :

char=y while [ $char ="y" ] do ls df -t sleep 30 who echo"Want to continue\(y/n\)?"

14

Page 16: Unix

read char done

Output :

sh ss11 cold gold sold ss11 ss14 SS17 ss2 ss22 SS25 SS28 SS30 ss6 SS9 e.txt output ss1 ss12 ss15 ss18 SS20 ss23 SS26 SS29 ss4 ss7 tr.c f1 q.txt ss10 ss13 ss16 SS19 ss21 SS24 SS27 ss3 SS5 ss8 w.txt Filesystem 1K-blocks Used Available Use% Mounted on/dev/sda6 4845056 2476544 2124328 54% /varrun 452316 96 452220 1% /var/runvarlock 452316 0 452316 0% /var/lockudev 452316 56 452260 1% /devdevshm 452316 12 452304 1% /dev/shmlrm 452316 39760 412556 9% /lib/modules/2.6.24-19-generic/volatilegvfs-fuse-daemon 4845056 2476544 2124328 54% /home/aditya/.gvfsaditya tty7 2008-11-20 11:20 (:0)aditya pts/0 2008-11-20 11:25 (:0.0)Want to continue\(y/n\)? 12. Write a Shell Script that receives two filenames as arguments. It should check whether content of the two files is same or not. If they are same, second file should be deleted.

Ans :

if [ -f $1 -a -f $2 ] then if diff $1 $2thencat $1 echo "\n" cat $2 echo "\n" Contents are same Second file is being deleted rm $2 else

15

Page 17: Unix

echo"\n" Contents are different fi else echo "\n" File does not exist fi

Output :

$ sh ss12 df rt Aditya Sadh Aditya Sadh Contents are same Second file is being deleted $ 13. If a number is input through the keyboard, WASS to calculate sum of its digits.

Ans :

echo Enter a no. read num sum=0 while true do if test `expr $num % 10` -gt 0 then temp=`expr $num % 10` sum=`expr $sum + $temp` num=`expr $num / 10` else echo $sum

16

Page 18: Unix

exit fi

Output :

sh ss13 Enter a no. 2345 14 14. Write a Shell Script that performs a count-down either from 10 (default) or from the value that is entered by the user.

Ans :

echo "Enter the Countdown time." read n clear while [ $n -ge 0 ] do echo $n sleep 1 n=`expr $n - 1` done echo Count down timer stopped

17

Page 19: Unix

Output :

sh ss14 Enter the Countdown time. 3

3 2 1 0 Count down timer stopped 15. Write a Shell Script which takes a command line argument of Kms and by default converts that number into meters. Also provide options to convert km to dm and km to cm.

Ans :

km=$1 mt=`expr $km \* 1000` echo "1.) km to dm" echo "2 ) km to cm" echo Enter your choice read num case $num in 1)dm=`expr $km \* 10000` echo $km in meters is :$mt and in decimeters is : $dm ;; 2)cm=`expr $km \* 100000` echo $km in meters is :$mt and in centimeters is : $cm ;;

18

Page 20: Unix

esac

Output :

sh ss15 5 5 kms in meters is 5000 1.) km to dm 2 ) km to cm Enter your choice 1 5 in meters is- 5000 and in decimeters is 50000 16. Write a Shell Script using for loop, which displays the message "Welcome to the UNIX System".

Ans :

for var in $* do echo "Welcome to Unix System" shift 1 done

19

Page 21: Unix

Output :

sh ss16 Welcome to Unix System 17. Write a Shell Script to change the filename of all files in a directory from lower-case to upper-case.

Ans :

for i in * do mv $i `echo $i|tr "[:lower:]" "[:upper:]"` done

20

Page 22: Unix

Output :

sh SS17 mv: `COLD' and `COLD' are the same file mv: `E.TXT' and `E.TXT' are the same file mv: `F1' and `F1' are the same file mv: `GOLD' and `GOLD' are the same file mv: `Q.TXT' and `Q.TXT' are the same file mv: `SOLD' and `SOLD' are the same file mv: `SS1' and `SS1' are the same file

COLD GOLD SOLD SS11 SS14 SS17 SS2 SS22 SS25 SS28 SS30 SS6 SS9 E.TXT OUTPUT SS1 SS12 SS15 SS18 SS20 SS23 SS26 SS29 SS4 SS7 TR.C F1 Q.TXT SS10 SS13 SS16 SS19 SS21 SS24 SS27 SS3 SS5 SS8 W.TXT 18. Write a Shell Script that examines each file in the current directory. Files whose names end in old are moved to a directory named old files and files whose names end in .c are moved to directory named cprograms.

Ans :

echo Before "\n" ls -l mkdir oldfiles cprograms for var in `ls` do if test $var = *old then echo "\n" File $var is moved to old files directory mv $var old files fi if test $var = *.c then echo"\n" File $var is moved to cprograms directory mv $var cprograms fi

21

Page 23: Unix

done cd oldfiles echo "\n" Files in oldfiles ls -l cd .. echo "\n" After"\n" ls -l

Output :

sh SS18 Before

total 144 -rwxrwxrwx 1 aditya aditya 66 2008-11-20 10:07 COLD -rwxrwxrwx 1 aditya aditya 0 2008-11-20 10:07 E.TXT -rwxrwxrwx 1 aditya aditya 7 2008-11-20 10:07 F1 -rwxrwxrwx 1 aditya aditya 54 2008-11-20 10:07 GOLD

Files in oldfiles total 0

After total 152 -rwxrwxrwx 1 aditya sadh 66 2008-11-20 10:07 COLD drwxr-xr-x 2 aditya aditya 4096 2008-11-20 12:04 cprograms -rwxrwxrwx 1 aditya aditya 0 2008-11-20 10:07 E.TXT -rwxrwxrwx 1 aditya aditya 7 2008-11-20 10:07 F1 -rwxrwxrwx 1 aditya aditya 54 2008-11-20 10:07 GOLD

22

Page 24: Unix

19. Write a Shell Script which searches all files in the given directory (to be taken as command line argument) for the file having the title (to be taken as command line argument), as the first line in the file. a) Display the contents of the searched file. b) In the end, printthe the file is ###, where ### is small-sized if total no. of lines is <50 ### is medium-sized if total no. of lines between 50&100 ### is large-sized.

Ans :

for i in `ls $dirnm` do f=`echo $1/$i` if [ -f $f ] then if [ `cat $f|head -1` = $2 ] then cat $f if [ `cat $f|wc -l` -lt 50 ] then echo $i is small sized fi if [ `cat $f|wc -l` -ge 50 -a `cat $f|wc -l` -lt 100 ]

23

Page 25: Unix

then echo $i is a medium sized fi if [ `cat $f|wc -l` -gt 100 ] then echo $i is large sized fi fi fi done

Output :

sh ss19 newdir AMITY AMITY Amity University file1 is small sized 20. Write a shell script which reports names and sizes of all files in a directory (directory would be supplied as an argument to the shell script) whose size is exceeding 1000 bytes. The filenames should be printed in descending order of their sizes. The total number of such files should also be reported.

Ans :

cd $1 mkdir tmp$1 for i in * do if [ -f $i ] then tmp=`ls -l $i|cut -f5 -d" "` if [ $tmp -gt 1000 ] then ln $i tmp$1/$i fi fi done ls -lS tmp$1 echo Total number of such files is : `ls tmp$1|wc -w` rm -r tmp$1

24

Page 26: Unix

Output :

sh SS20 total 4 -rw-r--r-- 2 aditya aditya 1392 2008-11-20 11:02 unix output Total number of such files is : 1 21. WASS for renaming each file in the directory such that it will have the current shell PID as an extension. The shell script should ensure that the directories do not get renamed.

Ans :

for var in `ls` do if test -f $var then a=`echo $$` mv $var $var.$a fi done echo "\n" File name changed:"\n" ls -l

25

Page 27: Unix

Output :

sh SS21.7600.a File name changed:

total 152 -rwxrwxrwx aditya aditya 66 2008-11-20 10:07 COLD.7600.a.a drwxr-xr-x 2 aditya aditya 4096 2008-11-20 12:04 cprograms -rwxrwxrwx 1 aditya aditya 0 2008-11-20 10:07 E.TXT.7600.a.a -rwxrwxrwx 1 aditya aditya 7 2008-11-20 10:07 F1.7600.a.a -rwxrwxrwx 1 aditya aditya 54 2008-11-20 10:07 GOLD.7600.a.a drwxr-xr-x 2 aditya aditya 4096 2008-11-20 12:04 oldfiles 22. WAP to calculate and print the first m Fibonacci numbers.

Ans :

echo Enter the series length read num x=0 y=1 if test $num -eq 1 then echo $x else if test $num -eq 2 then echo "$x\n$y" else echo "$x\n$y" i=3 while test $i -le $num do temp=`expr $y + $x` x=$y y=$temp echo $y i=`expr $i + 1` done fi fi

26

Page 28: Unix

Output :

sh SS22 Enter the series length 6 0 1 1 2 3 23. WASS that will receive any number of filenames as arguments. The shell script should check whether such files already exist. If they do, then it should be reported. The files that do not exist should be created in a sub-directory called mydir. The shell script should first check whether the sub-directory mydir exists in the current directory. If it doesn’t exist, then it should be created. If mydir already exists, then it should be reported along with the number of files that are currently present in mydir.

Ans :

if [ -e mydir ] then echo "Directory : mydir exist" else echo Do not exist mkdir mydir fi for a in $* do echo $a then echo "File does not exist " else echo “file d touch $a mv $a mydir fi done

27

Page 29: Unix

Output :

sh SS23 SS22 Directory : mydir exist SS22 File does not exists 24. A shell script receives even number of filenames. Suppose four filenames are supplied, then the first file should get copied into second file, the third file should get copied into fourth and so on. If odd number of filenames is supplied then no copying should take place and an error message should be displayed.

Ans :

if [ `expr $# % 2` -ne 0 ] then echo Enter even number of parameters else i=0 for k in $* do i=`expr $i + 1` if [ $i -eq 1 ] then temp1=$k fi if [ $i -eq 2 ] then temp2=$k i=0 cp $temp1 $temp2fidone fi cat

28

Page 30: Unix

Output :

$ cat>txt File Aditya lives in Delhi$ cat>doc Aditya is a student of BCA$ cat>tree Aditya is a cool dude$ cat>wee His roll no- is A1004807024 $ sh SS24 txt doc tree wee His roll no- is A1004807024 Shivani is a cool dude Aditya lives id Delhi Aditya is a student of BCA 25. WASS to identify all zero-byte files in the current directory and delete them. Before proceeding with deletion, the shell script should get a conformation from the user.

Ans :

for i in * do if [ -e $i -a -f $i ] then if [ -s $i ] then echo else rm -i $i fi fi done

29

Page 31: Unix

Output :

sh SS25

rm: remove regular empty file `E.TXT'? y rm: remove regular empty file `Q.TXT'? n rm: remove regular empty file `W.TXT'? n 26. WASS to compute the GCD and LCM of two numbers.

Ans :

echo Enter First number read n1 echo Enter Second number read n2 if [ $n1 -lt $n2 ] then i=$n1 else i=$n2 fi flag=0 while [ $flag -eq 0 ] do if [ `expr $n1 % $i` -eq 0 -a `expr $n2 % $i` -eq 0 ] then echo GCD of $n1 and $n2 is $i flag=1 fi i=`expr $i - 1` done

30

Page 32: Unix

Output :

sh SS26 Enter First number 4 Enter Second number 8 GCD of 4 and 8 is 4 27. Two numbers are entered through the keyboard. WAP to find the value of one number raised to the power of another.

Ans :

read b echo Enter power read p powr=$p result=1 while [ $p -ge 1 ] do result=`expr $result \* $b` p=`expr $p - 1` done echo $b raised to the power $powr is $result

31

Page 33: Unix

Output :

sh SS27 Enter a number 4 Enter power 2 4 raised to the power 2 is 16 28. WASS that prompts the user for the password. The user has maximum of 3 attempts. If the user enters the correct password, the message “Correct Password” is displayed else the message “Wrong Password”.

Ans :

echo Set the password first read passw i=0 while [ $i -lt 3 ] do echo Enter password read p if [ $p = $passw ] then echo Correct Password i=3 else echo Wrong password i=`expr $i + 1` fi done

32

Page 34: Unix

Output :

sh SS28 Set the password first Aditya Enter password aditya Correct Password 29. WASS that repeatedly asks the user repeatedly for the “Name of the Institution” until the user gives the correct answer.

Ans :

flag=0 while [ $flag -eq 0 ] do echo Enter name of your institute in capital letters read inst if [ $inst = "AMITY" ] then echo Correct Answer flag=1 else echo Enter Again fi done

33

Page 35: Unix

Output :

sh SS29 Enter name of your institute in capital letters AMITY Correct Answer 30. WAP to generate all combinations of 1, 2 and 3 using for loop.

Ans :

for i in 1 2 3 do for j in 1 2 3 do for k in 1 2 3 do echo $i$j$k done done done

Output :

sh SS30 111 112 113 121 122 123 131 132 133 211 212 213 221 222 223 231 232

34

Page 36: Unix

233 311 312 313 321 322 323 331 332 333

35