Input validation of file


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Input validation of file
# 1  
Old 10-18-2011
Input validation of file

Hi,
I'm trying to do input validation for a file. If the user fails to enter a file name, the script should prompt for the file name or exit. I'm using this script to integrate with a bigger script which does ftp of the files which are "read".

Code:
 
#!/bin/ksh
echo "enter a file name"
if [ -z "$1" ]
then
   read $1
   echo "file read"
else
   exit
fi

This script is working for string inputs only. And not for file(name) inputs.
Requesting help in this regard.

Thank you
# 2  
Old 10-18-2011
That is due to your choice of test operators: The test chosen is for strings...
# 3  
Old 10-18-2011
File test operators are:
Code:
 
-b 
-c
-d
-f
etc

# 4  
Old 10-18-2011
Something like:
Code:
#!/usr/bin/sh

CONT=1
while [ CONT -gt 0 ]
do
   echo "enter a file name"
   read USERINPUT
   #echo "1 file name " $USERINPUT
   if [ -e $USERINPUT ]
   then
        echo "2: file name " $USERINPUT
        #read $USERINPUT
        echo "file read"
        CONT=0
   else
        echo " file does not exist"
   fi
done

# 5  
Old 10-19-2011
Thank you 'vbe' for the response. I tried out on the same lines.
but when i do not enter any input, the script is still showing "file read" message. Instead script should exit or prompt for valid input. Here is the o/p:

$./test1
enter a file name

2: file name
file read
# 6  
Old 10-19-2011
???
Code:
ant:/home/vbe $ 002

enter a file name
99
 file does not exist
enter a file name
zen
 file does not exist
enter a file name
002
2: file name  002
file read
-rwxrwxr-x   1 vbe        bin            308 Oct 19 12:10 002
ant:/home/vbe $ more 002
#!/usr/bin/sh

CONT=1
while [ CONT -gt 0 ]
do
   echo "enter a file name"
   read USERINPUT
   #echo "1 file name " $USERINPUT
   if [ -e $USERINPUT ]
   then
        echo "2: file name " $USERINPUT
        #read $USERINPUT
        echo "file read"
        ll $USERINPUT
        CONT=0
   else
        echo " file does not exist"
   fi
done
002: END

# 7  
Old 10-19-2011
I commented out the first line and I get:
Code:
nt:/home/vbe $ 002
enter a file name
titi
002[9]: test: argument expected
 file does not exist
enter a file name
002
002[9]: test: argument expected
 file does not exist
enter a file name
^C

So the test you were trying to use seems to be sh specific...
(well on my HP-UX 11.11 anyway...)
So if you were to use ksh, the test would be:
Code:
if test -s "$VAR"

Give me a bit time to test...
Login or Register to Ask a Question

Previous Thread | Next Thread

9 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

Input Email ID Validation

Hi Experts, I've a script where users will input the email id. I want to loop the script until the user enter proper email id. Its validating for all condition and error out if any wrong data, but for one condition alone its not erroring out. Capture_EmailID() { echo -e "Please Enter... (1 Reply)
Discussion started by: senthil.ak
1 Replies

2. Windows & DOS: Issues & Discussions

Put the numeric validation in user input when value is 5.1.2.3

Hi I need to put the validation in batch script when user will enter the build number it should be numeric.I can put the validation for numeric values but there is .(dot) in number so it would not take it as numeric. Is it possible we can store it in variable and remove the .(dot) from the... (1 Reply)
Discussion started by: anuragpgtgerman
1 Replies

3. Windows & DOS: Issues & Discussions

Validation in user input in batch script

I need to insert the validation in my batch script.When user enter the value it should be numeric+minimum length should be 2 for e.g. 02,03 if he puts 1a,1A,2a3 t hen should print the message that it is wrong and print te message enter valid value. Echo RC is in format of 02 set /p... (2 Replies)
Discussion started by: anuragpgtgerman
2 Replies

4. Shell Programming and Scripting

perl: How to improve with minimal validation of its input??

The Code: #!/usr/bin/perl use strict; use warnings; print "Please enter numbers, separated by commas: "; my $data=<STDIN>; chomp $data; my @dataset=split(/,/, $data); my $sum = 0; foreach my $num (@dataset) { $sum += $num; } my $total_nums = scalar(@dataset); my $mean =... (1 Reply)
Discussion started by: 300zxmuro
1 Replies

5. Shell Programming and Scripting

Input Validation of comma separated values

Hello all, I am working on a script and have the first part solved of numerical input validation. Below the code validates that the input is a numerical value between 100 and 1000. If not, it errors out. Now I need to be able to read values separated by a comma. For example, instead of my... (5 Replies)
Discussion started by: LinuxRacr
5 Replies

6. Shell Programming and Scripting

how to do validation the input requirement with if/else

Hello Everyone, I have the following script; ------------------------------------------------------------------ #!/bin/ksh set HSC=$1 set SEX=$2 set EXP='export ORACLE_SID=AFISDB' if ($#argv !=2); then echo Usage $0 HSC SEX else date > modify_gender_trace.txt $EXP echo... (5 Replies)
Discussion started by: wingcross
5 Replies

7. Shell Programming and Scripting

Command line user input validation

Hi guys, I have a piece of snippet below which asks the user to input some numbers if isDatasubEnabled && isReconEnabled; then echo "1 = CGT, 2 = Subscriber, 3 = Order Monitor, 4 = Revaluations, 5 = Reconciliation, 6 = All, 7 = Exit" elif isDatasubEnabled &&... (4 Replies)
Discussion started by: pyscho
4 Replies

8. Shell Programming and Scripting

Need script to take input from file, match on it in file 2 and input data

All, I am trying to figure out a script to run in windows that will allow me to match on First column in file1 to 8th Column in File2 then Insert file1 column2 to file2 column4 then create a new file. File1: 12345 Sam 12346 Bob 12347 Bill File2:... (1 Reply)
Discussion started by: darkoth
1 Replies

9. Shell Programming and Scripting

Input validation ?

I am trying to validate user input, at the moment what i have is as below :- echo "\n\tPlease, enter package name to import: \c" read PACKAGE So far this works perfect , But if the user does not input any thing it stalls :( What I need is, If the user does not enter the name of the... (9 Replies)
Discussion started by: systemali
9 Replies
Login or Register to Ask a Question