Sponsored Content
Full Discussion: ksh file handling
Top Forums Shell Programming and Scripting ksh file handling Post 302615217 by CarloM on Thursday 29th of March 2012 09:42:06 AM
Old 03-29-2012
Quote:
Originally Posted by ctsgnb
strace it then
Ah-hah. I knew I was forgetting an easy way to check. Smilie

It does open & close the files every time.

In case anyone is curious:
Code:
[user@host1: /tmp] cat x.sh
#!/bin/ksh

MyFiles ()
{
   grep "<TAG1>" < file1 >> file2
   grep "<TAG2>" < file1 >> file2
}

MyFiles;

[user@host1: /tmp] strace ./x.sh > /tmp/x.trace 2>&1
[user@host1: /tmp] cat x.trace

...

stat("/bin/grep", {st_mode=S_IFREG|0755, st_size=88896, ...}) = 0
lstat("/bin/grep", {st_mode=S_IFREG|0755, st_size=88896, ...}) = 0
open("file1", O_RDONLY)                 = 3
fcntl(0, F_DUPFD, 10)                   = 11
fcntl(11, F_SETFD, FD_CLOEXEC)          = 0
close(0)                                = 0
ioctl(3, SNDCTL_TMR_TIMEBASE or TCGETS, 0x7fff3f5edea0) = -1 ENOTTY (Inappropriate ioctl for device)
lseek(3, 0, SEEK_CUR)                   = 0
fstat(3, {st_mode=S_IFREG|0644, st_size=60, ...}) = 0
fstat(3, {st_mode=S_IFREG|0644, st_size=60, ...}) = 0
lseek(3, 0, SEEK_CUR)                   = 0
fcntl(3, F_DUPFD, 0)                    = 0
close(3)                                = 0
close(3)                                = -1 EBADF (Bad file descriptor)
open("file2", O_WRONLY|O_CREAT|O_APPEND, 0666) = 3
fcntl(1, F_DUPFD, 10)                   = 12
fcntl(12, F_SETFD, FD_CLOEXEC)          = 0
close(1)                                = 0
ioctl(3, SNDCTL_TMR_TIMEBASE or TCGETS, 0x7fff3f5edea0) = -1 ENOTTY (Inappropriate ioctl for device)
lseek(3, 0, SEEK_CUR)                   = 0
fstat(3, {st_mode=S_IFREG|0644, st_size=38, ...}) = 0
fcntl(3, F_DUPFD, 1)                    = 1
close(3)                                = 0
fstat(1, {st_mode=S_IFREG|0644, st_size=38, ...}) = 0
lseek(1, 0, SEEK_CUR)                   = 0
close(3)                                = -1 EBADF (Bad file descriptor)
rt_sigprocmask(SIG_BLOCK, [HUP INT QUIT PIPE], [], 8) = 0
vfork()                                 = 6750
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
close(1)                                = 0
fcntl(12, F_DUPFD, 1)                   = 1
close(12)                               = 0
close(0)                                = 0
fcntl(11, F_DUPFD, 0)                   = 0
close(11)                               = 0
rt_sigaction(SIGINT, {0x416ac0, [], SA_RESTORER|SA_INTERRUPT, 0x385be302d0}, {SIG_DFL, [], 0}, 8) = 0
wait4(-1, [{WIFEXITED(s) && WEXITSTATUS(s) == 0}], WSTOPPED|WCONTINUED, NULL) = 6750
--- SIGCHLD (Child exited) @ 0 (0) ---
rt_sigreturn(0x11)                      = 6750
wait4(-1, 0x7fff3f5ee494, WNOHANG|WSTOPPED|WCONTINUED, NULL) = -1 ECHILD (No child processes)
wait4(-1, 0x7fff3f5ee494, WNOHANG|WSTOPPED|WCONTINUED, NULL) = -1 ECHILD (No child processes)
rt_sigaction(SIGCHLD, {0x423cf0, [], SA_RESTORER|SA_INTERRUPT, 0x385be302d0}, {0x423cf0, [], SA_RESTORER|SA_INTERRUPT, 0x385be302d0}, 8) = 0
ioctl(2, TIOCGPGRP, [0])                = -1 ENOTTY (Inappropriate ioctl for device)
open("file1", O_RDONLY)                 = 3
fcntl(0, F_DUPFD, 10)                   = 11
fcntl(11, F_SETFD, FD_CLOEXEC)          = 0
close(0)                                = 0
ioctl(3, SNDCTL_TMR_TIMEBASE or TCGETS, 0x7fff3f5edea0) = -1 ENOTTY (Inappropriate ioctl for device)
lseek(3, 0, SEEK_CUR)                   = 0
fstat(3, {st_mode=S_IFREG|0644, st_size=60, ...}) = 0
fstat(3, {st_mode=S_IFREG|0644, st_size=60, ...}) = 0
lseek(3, 0, SEEK_CUR)                   = 0
fcntl(3, F_DUPFD, 0)                    = 0
close(3)                                = 0
close(3)                                = -1 EBADF (Bad file descriptor)
open("file2", O_WRONLY|O_CREAT|O_APPEND, 0666) = 3
fcntl(1, F_DUPFD, 10)                   = 12
fcntl(12, F_SETFD, FD_CLOEXEC)          = 0
close(1)                                = 0
fcntl(12, F_SETFD, FD_CLOEXEC)          = 0
close(1)                                = 0
ioctl(3, SNDCTL_TMR_TIMEBASE or TCGETS, 0x7fff3f5edea0) = -1 ENOTTY (Inappropriate ioctl for device)
lseek(3, 0, SEEK_CUR)                   = 0
fstat(3, {st_mode=S_IFREG|0644, st_size=56, ...}) = 0
fcntl(3, F_DUPFD, 1)                    = 1
close(3)                                = 0
fstat(1, {st_mode=S_IFREG|0644, st_size=56, ...}) = 0
lseek(1, 0, SEEK_CUR)                   = 0
close(3)                                = -1 EBADF (Bad file descriptor)

...

 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

KSH File Handling

Hi Im writing a small script right now which reads all of the files in a directory and displays there name. However I dont want to use the ls command. Is there any way of reading the names of the files and printing them to the screen? (2 Replies)
Discussion started by: madtim
2 Replies

2. Programming

File Handling in C

Hi all, I have a problem in handling files through C. here is the problem im having: i will query the database (for instance consider employees table ) for empno,ename,job,salary fields.The query returns me some 100 of rows. now i need to place them in a file in row wise pattern as they... (3 Replies)
Discussion started by: trinath
3 Replies

3. Shell Programming and Scripting

file handling with ksh scripting

how can i write content of a variable to a file? how can i read standard output into a variable? (1 Reply)
Discussion started by: gfhgfnhhn
1 Replies

4. UNIX for Advanced & Expert Users

File Handling

Hi, I have a log file which runs into 3 to 5 GB. We store this typically for 6 months. When a new month starts we move the previous month into a 9 month back up log (file.9m) and delete the last month of the 9 month back up. Iam using awk to find the data and cat to join the files like... (3 Replies)
Discussion started by: baanprog
3 Replies

5. Shell Programming and Scripting

Handling values with space while passing commandline argument from wrapper script in KSH

Hi there, I have a wapper script which passes the argument from command prompt to inner script.. It works fine as long as the argument containing single word. But when value contains multiple word with space, not working as expected. I tried my best, couldn't find the reason. Gurus, pls.... (2 Replies)
Discussion started by: kans
2 Replies

6. Shell Programming and Scripting

KSH script to run other ksh scripts and output it to a file and/or email

Hi I am new to this Scripting process and would like to know How can i write a ksh script that will call other ksh scripts and write the output to a file and/or email. For example ------- Script ABC ------- a.ksh b.ksh c.ksh I need to call all three scripts execute them and... (2 Replies)
Discussion started by: pacifican
2 Replies

7. UNIX for Advanced & Expert Users

File handling

my input for a script is another csv file but in that file say 7 lines are there ... how can i get line by line to that input for example : >cat link.csv www.yahoo.com,yahoo www.google.com,google www.unix.com,unix another file in that file i need to ping the above links ... (2 Replies)
Discussion started by: ponmuthu
2 Replies

8. UNIX for Dummies Questions & Answers

File Handling

Hi Team, I am trying to cut a large file into multiple files. It has Header 50,050 records Trailer ------------------------------------------- I need to cut the files into multiple files of 1000 records and should have the same header and trailer as the original files. ... (4 Replies)
Discussion started by: Gurkamal83
4 Replies

9. UNIX for Dummies Questions & Answers

File handling

I have a file 1 298167 298168 1093209 1093210 1422663 I want to write a code where in I want to read contents of above file like first read is 1 second read is 298167 Substract second read from first and if this is greater than or less than 99,999. Similarly I want to traverse thru... (3 Replies)
Discussion started by: Guru148
3 Replies

10. Shell Programming and Scripting

File handling

Hi All, I need to extract the data from the text file. The data of the text file is shown below #L 0.000017 4.329939 0.000017 4.716267 r7.9 P 1 1;Net=IN32 The extracted data should be IN32. Could anyone help to script in c shell.? (4 Replies)
Discussion started by: gopishrine
4 Replies
All times are GMT -4. The time now is 07:11 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy