|
From: Herbert on 21 Jan 2006 22:40 I am a beginner in shell scripting. I have a question regarding file handling in shell script. There is a perl script as follows: open (WRITEFILE, ">>/user/test.html"); flock WRITEFILE, LOCK_EX; print (WRITEFILE "test"); ..... print (WRITEFILE "<BR>"); close WRITEFILE If I want to change this to ksh script, how can I do it? open(WRITEFILE, '/user/test.html') flock WRITEFILE, LOCK_EX I am not sure of write something into file close WRITEFILE. Can anyone help me with this? Thanks
From: Bill Marcum on 22 Jan 2006 15:25 On 21 Jan 2006 19:40:16 -0800, Herbert <kang_uni(a)hotmail.com> wrote: > I am a beginner in shell scripting. > I have a question regarding file handling in shell script. > There is a perl script as follows: > > open (WRITEFILE, ">>/user/test.html"); > flock WRITEFILE, LOCK_EX; > print (WRITEFILE "test"); > .... > print (WRITEFILE "<BR>"); > close WRITEFILE > > If I want to change this to ksh script, how can I do it? > > open(WRITEFILE, '/user/test.html') "open" and "close" commands are usually not needed in shell scripts, but when they are needed, files are opened and closed with redirection commands like "exec >/usr/test.html" or "exec >&-" > flock WRITEFILE, LOCK_EX There is a flock command, but it is rarely included in Unix/Linux distributions. In shell scripts, one usually uses a lock file or directory, with the assumption that other scripts will test that before writing the file. until mkdir lock_dir; do sleep 1; done > I am not sure of write something into file Depending on the application: echo something > $WRITEFILE echo something >> $WRITEFILE or sed 's/oldstring/newstring/' $WRITEFILE > tempfile mv tempfile $WRITEFILE -- <james> abuse me. I'm so lame I sent a bug report to debian-devel-changes
From: Herbert on 22 Jan 2006 19:10 Bill Marcum Jan 22, 4:25 pm show options Newsgroups: comp.unix.shell From: Bill Marcum <bmar...(a)iglou.com> - Find messages by this author Date: Sun, 22 Jan 2006 15:25:35 -0500 Local: Sun, Jan 22 2006 4:25 pm Subject: Re: How to open, lock, write and close a file in ksh Reply | Reply to Author | Forward | Print | Individual Message | Show original | Report Abuse On 21 Jan 2006 19:40:16 -0800, Herbert <kang_...(a)hotmail.com> wrote: > I am a beginner in shell scripting. > I have a question regarding file handling in shell script. > There is a perl script as follows: > open (WRITEFILE, ">>/user/test.html"); > flock WRITEFILE, LOCK_EX; > print (WRITEFILE "test"); > .... > print (WRITEFILE "<BR>"); > close WRITEFILE > If I want to change this to ksh script, how can I do it? > open(WRITEFILE, '/user/test.html') "open" and "close" commands are usually not needed in shell scripts, but when they are needed, files are opened and closed with redirection commands like "exec >/usr/test.html" or "exec >&-" > flock WRITEFILE, LOCK_EX There is a flock command, but it is rarely included in Unix/Linux distributions. In shell scripts, one usually uses a lock file or directory, with the assumption that other scripts will test that before writing the file. until mkdir lock_dir; do sleep 1; done > I am not sure of write something into file Depending on the application: echo something > $WRITEFILE echo something >> $WRITEFILE or sed 's/oldstring/newstring/' $WRITEFILE > tempfile mv tempfile $WRITEFILE ----------- Thanks for the reply but I don't understand the file lock stuff in your reply. until mkdir lock_dir; do sleep 1; done How do I lock '/user/test.html' file? Can you please explain it again?
From: Stephane CHAZELAS on 23 Jan 2006 03:11 2006-01-21, 19:40(-08), Herbert: > I am a beginner in shell scripting. > I have a question regarding file handling in shell script. > There is a perl script as follows: > > open (WRITEFILE, ">>/user/test.html"); > flock WRITEFILE, LOCK_EX; > print (WRITEFILE "test"); > .... > print (WRITEFILE "<BR>"); > close WRITEFILE > > If I want to change this to ksh script, how can I do it? > > open(WRITEFILE, '/user/test.html') > flock WRITEFILE, LOCK_EX > I am not sure of write something into file > close WRITEFILE. > > Can anyone help me with this? [...] You don't want to do it like that. A shell is not a programming language, you have to think differently, you can't translate word to word from another language. -- St?phane
|
Pages: 1 Prev: How to measure memory usage? Next: common history in bash |