open a file in vi


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting open a file in vi
# 1  
Old 03-15-2011
open a file in vi

I am prompting a user to enter a file to open in vi and if the file exists and is a readable ordinary file, otherwise create that file. Also protect that so the user can not open in vi a binary file or a directory.
could i use the command file to find out if the file is ordinary text file combined with the grep command ? not sure how to do this

Code:
echo "please enter a file to edit in vi"
read file
vi $file

# 2  
Old 03-15-2011
One common pragma is just append nothing to the given file name, so now it exists empty or is unchanged. You get an error if it is not writable, so there are the shell tests 'if [ -f "$file" ]' and more code.
Code:
>> "$file"

# 3  
Old 03-15-2011
I tried this but i keep getting "please enter a real file extension"
how would i then create a valid file?

Code:
if [ -f " $file"  ]
then
echo "A real file"

vi $file
else
echo "please enter a real file extension"
fi

how could i use grep to find the file to see if it exists?

Last edited by icelated; 03-15-2011 at 03:58 PM..
# 4  
Old 03-15-2011
Code:
if [ -f " $file"  ]

remove space after the first doublequote:
Code:
if [ -f "$file"  ]

in your script :
instead of :
Code:
vi $file

use:
Code:
touch $file

# 5  
Old 03-15-2011
Yes, 'touch "$file"' is very like '>> "$file" but does not fork or exec. Keep $file in "" in case they type in something white space or worse!
# 6  
Old 03-15-2011
how do i find out if the file is a valid file? i dont want to open binary file or a directory.
# 7  
Old 03-15-2011
or ... inspired from the way Dave Korn recommand to ceate lock files (but here atomicity has not been specified as a requirement so the noclobber option is not mandatory)

Code:
: > $file 2>/dev/null

Smilie
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

awk can't open file; file merge attempt

Dear all, I have an AWK related issue. I have two data files; the first, FileA has fewer lines, the second, FileB has more. FileA is a subset of FileB . Both files are tab delimited. What I want to do? When the first two columns for FileA match the first two columns of FileB, I want to... (4 Replies)
Discussion started by: A_Human_Person
4 Replies

2. Shell Programming and Scripting

Newbie.. Find if a file exists and open, if not create the desired file..

Hey all, I'm brand new to script writing, I'm wanting to make a script that will ask for a file and then retrieve that file if it exists, and if it doesn't exist, create the file with the desired name, and I'm completely stuck.. so far.. #! bin/bash echo "Enter desired file" read "$file" if ... (5 Replies)
Discussion started by: Byrang
5 Replies

3. Shell Programming and Scripting

fatal: cannot open file `TNAME' for reading (No such file or directory)

Hi, I am running this command through a shell script and getting the error mentioned in the subject line: testing.awk -f x.txt TNAME My testing.awk file contains something like ++++++++++++++++++ #!/usr/bin/awk -f BEGIN{ TAB_NAME="INSERT_ONE_" ARGV ; } if ( $1=="JAM_ONE" &&... (1 Reply)
Discussion started by: kunwar
1 Replies

4. Solaris

Before I delete any file in Unix, How can I check no open file handle is pointing to that file?

I know how to check if any file has a unix process using a file by looking at 'lsof <fullpath/filename>' command. I think using lsof is very expensive. Also to make it accurate we need to inlcude fullpath of the file. Is there another command that can tell if a file has a truely active... (12 Replies)
Discussion started by: kchinnam
12 Replies

5. Red Hat

libodbc.so.1: cannot open shared object file: No such file or directory

We are trying to install third party software on this unix server... Here is the error message we are getting... error while loading shared libraries: libodbc.so.1: cannot open shared object file: No such file or directory It seems like odbc driver is not installed... >rpm -q unixODBC... (1 Reply)
Discussion started by: govindts
1 Replies

6. Red Hat

cannot set user id: Resource temporarily unavailable (not open file/open process related)

First post, sorry to be a bother but this one has been dogging me. I have a process user (java application server) that trips a resource limit every couple weeks and need help finding what limit we're hitting. First, this is what's running: This is the error when jobs are run or the... (0 Replies)
Discussion started by: Katahdin
0 Replies

7. Programming

Some how the open(file,flag, acc) returns 0 and write to the screen, instead of the file ???

I am out of idea what to do to resolve the problem! I need to use the open(file, for.., access) function to write a file. Never have the situation like that: it is return 0 - zero. As a result all write(..) going to the screen! What the problem it could be? I do not even know... (2 Replies)
Discussion started by: alex_5161
2 Replies

8. Programming

libRmath.so: cannot open shared object file: No such file or directory

% locate Rmath /m/backup/backup/lib/R/include/Rmath.h /usr/lib/R/include/Rmath.h % gcc -g -o stand stand.c -I/usr/lib/R/include/ -lRmath -lm % ./stand ./stand: error while loading shared libraries: libRmath.so: cannot open shared object file: No such file or directory What's the trouble... (6 Replies)
Discussion started by: cdbug
6 Replies

9. UNIX for Dummies Questions & Answers

how to open a text file by double clicking on the file name in gtk+

how to open a text file by double clicking on the file name shown in a label widget in gtk+. thanks (0 Replies)
Discussion started by: cy163
0 Replies

10. UNIX for Dummies Questions & Answers

file activity (open/closed) file descriptor info using KORN shell scripting

I am trying to find a way to check the current status of a file. Such as some cron job processes are dependent on the completion of others. if a file is currently being accessed / modified or simply open state I will wait until it is done being processed before attempting the next process on that... (3 Replies)
Discussion started by: Gary Dunn
3 Replies
Login or Register to Ask a Question