Sponsored Content
Top Forums UNIX for Dummies Questions & Answers [Solved] How to refer to input file in code? Post 302731183 by legato22 on Wednesday 14th of November 2012 11:26:55 AM
Old 11-14-2012
Quote:
Originally Posted by alister
Positional parameters is the term you need to look for when searching. They should be documented in your shell's manual page. They are shell variables (aka parameters) of the form $1, $2 ... $N, where N is the number of arguments with which the script was called. You'll also want to learn about the related special variables $* and $@.

Regards,
Alister
Thanks! Finally got the right search term. After a little more searching, fyi for posterity, i set the variables with:

DIR=`dirname $1`
INPUT=`basename $1`


I was having problems before too because I didn't realize that there could be no spaces when setting variables!
Works now, thanks again.

EDIT: Not working... sort of pissing me off. I did this the first time, and it returned the dirname and basename of the file the script was running on with $1, but now it won't anymore. dirname is empty and it just returns "usage:dirname path"

EDIT: And it works again...I realized that getting the dirname from $1 or $0 the way I am doing it gets problems if any of the folders in the path have spaces in them because i assume that it takes the space for a new "field"... Might be using improper terminology, but $1 might become $2 for example. My solution was to remove spaces from folder names... Anyone know how to do this otherwise so that there won't be a problem?

Last edited by legato22; 11-14-2012 at 02:44 PM..
 

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

Refer a remote file

I need to refer a remote(present on another unix server) directory from my unix machine as a local file. e.g. I have one directory D1 on 10.10.10.10 and i need to access files in this directory just like they are present on my unix machine 20.20.20.20. Is there any way out... i read a bit... (1 Reply)
Discussion started by: blackeyed
1 Replies

2. Shell Programming and Scripting

[code] Automatic File Input

i have got many files like this in my folder temp(say) imp_02042008.txt for date 02-04-2008 imp_03092009.txt for date 03-09-2009 imp_25112009.txt for date 25-11-2009 ................... ........ in some folder. and one of my shell code uses one of the above files based on date.... (0 Replies)
Discussion started by: Maruti
0 Replies

3. Shell Programming and Scripting

Automatic file input to code

i have got many files like this in my folder temp(say) imp_02042008.txt for date 02-04-2008 imp_03092009.txt for date 03-09-2009 imp_25112009.txt for date 25-11-2009 ................... ........ in some folder. and one of my shell code uses one of the above files based on date.... (9 Replies)
Discussion started by: Maruti
9 Replies

4. Shell Programming and Scripting

Append file based upon user input-- solved

Ok, I have a script with a commandline option that allows the user to add a custom function to the script file. I have tried everything in my limited knowledge of sed to get this to work and keep coming up short. I need sed to search for a line starting with a pattern, I've got that part so far,... (0 Replies)
Discussion started by: DC Slick
0 Replies

5. UNIX for Dummies Questions & Answers

12. If an ‘88’ Record with BAI Code ‘902’ was found on input file and not written to Output file, re

This is my input file like this 03,105581,,015,+00000416418,,,901,+00000000148,,,922,+00000000354,,/ 49,+00000000000416920,00002/ 03,5313236,,015,+00231036992,,,045,+00231036992,,,901,+00000048428,,/ 88,100,+0000000000000,0000000,,400,+0000000000000,0000000,/ 88,902,+0000000079077,,/... (0 Replies)
Discussion started by: sgoud
0 Replies

6. Shell Programming and Scripting

[Solved] problem - connecting code with external file

hello. this is the code #!/bin/sh total1024=0 total2048=0 total8192=0 if ; then if ; then while read variable do if ; then total1024=$(( $total1024 + 1 )) fi if ; then total2048=$((... (4 Replies)
Discussion started by: Telis
4 Replies

7. UNIX for Dummies Questions & Answers

Hot to retrieve *.sql file names which we refer in .sh file.

Hi Guys, How to retrieve/get *.sql file names which we refer in all *.sh files. Can any one help me on this. Thanks, Kolipaka (3 Replies)
Discussion started by: lakshmanrk811
3 Replies

8. Shell Programming and Scripting

[Solved] Date as Input

Below is my Scenario. I wrote one script to search the specific log files for Yesterdays date and gives the result. I need a script like 1. Once I run the Script, The script should ask me which date I want to search. 2. Once i enter the date, That script should search the log files for... (3 Replies)
Discussion started by: Padmanabhan
3 Replies

9. Shell Programming and Scripting

[Solved] How to refer more than 9 command line inputs for a scripts in korn shell?

Hi all, I have a script which should take more than 9 command line inputs while running. Likescript.sh a s d f g h j j k l o p i u y t r e w Now in the script if I have to access one of the input which is at position after 9, in this case say 'p' then how can I do that? echo $12 will not work... (15 Replies)
Discussion started by: pat_pramod
15 Replies

10. Shell Programming and Scripting

Python: Refer a properties file from different location

Hi All, I'm having a python script: test.py in /path/to/script/test.py I'm using a properties file: test_properties.py (it is having values as dictionary{}) which is in same DIR as the script. Sample Properties file: params = { 'target_db' : 'a1_db' 'src_db' : ... (15 Replies)
Discussion started by: saps19
15 Replies
basename(1)						      General Commands Manual						       basename(1)

NAME
basename, dirname - Returns the base file name or directory portion of a path name SYNOPSIS
basename string [suffix] dirname string STANDARDS
Interfaces documented on this reference page conform to industry standards as follows: basename: XCU5.0 dirname: XCU5.0 Refer to the standards(5) reference page for more information about industry standards and associated tags. OPTIONS
None OPERANDS
A string to be evaluated. This string may be empty. A file name suffix to be deleted if found. This operand applies to the basename com- mand only, and is optional. DESCRIPTION
The basename command reads the string specified on the command line, deletes the portion from the beginning to the last / (slash), and writes the base file name to standard output. If suffix is specified on the command line and suffix appears in string, the string is returned with the suffix removed. The dirname command reads the string specified on the command line, deletes from the last / (slash) to the end of the line, and writes the remaining path name to standard output. [Tru64 UNIX] The basename and dirname commands are generally used inside command substitutions within a shell procedure to specify an out- put file name that is some variation of a specified input file name. For more information, see the csh(1), ksh(1), and sh(1b) or sh(1p) reference pages. The following table demonstrates the processing applied to characters with particular meanings by the basename and dirname commands. ------------------------------ basename dirname string Result Result ------------------------------ / / / // / / /a/b b /a //a//b// b //a <null> err msg err msg a a . "" . /a a / /a/b b /a a/b b a ------------------------------ NOTES
It is not an error if suffix is not a part of string. EXAMPLES
To display the base file name of a shell variable, enter: basename $WORKFILE This displays the base file name of the value assigned to the WORKFILE shell variable. If WORKFILE is set to /u/gabe/program.c, then program.c is displayed. To construct, in a shell script, a file name that is the same as another file name, except for its suffix, enter the following command, using grave accents: OFILE=`basename $1 .c`.o This assigns to OFILE the value of the first positional parameter ($1), but with its suffix changed to $1 is /u/jim/program.c, then OFILE becomes program.o. Because program.o is only a base file name, it identifies a file in the current directory. The grave accents perform command substitution. To construct the name of a file located in the same directory as another, enter the following command, using grave accents: AOUTFILE=`dirname $TEXTFILE`/a.out This sets the AOUTFILE shell variable to the name of an a.out file that is in the same directory as TEXTFILE. If TEXTFILE is /u/fran/prog.c, then the value of dirname $TEXTFILE is /u/fran and AOUTFILE becomes /u/fran/a.out. ENVIRONMENT VARIABLES
The following environment variables affect the execution of basename and dirname: Provides a default value for the internationalization variables that are unset or null. If LANG is unset or null, the corresponding value from the default locale is used. If any of the inter- nationalization variables contain an invalid setting, the utility behaves as if none of the variables had been defined. If set to a non- empty string value, overrides the values of all the other internationalization variables. Determines the locale for the interpretation of sequences of bytes of text data as characters (for example, single-byte as opposed to multibyte characters in arguments). Determines the locale for the format and contents of diagnostic messages written to standard error. Determines the location of message catalogues for the processing of LC_MESSAGES. SEE ALSO
Commands: csh(1), ksh(1), Bourne shell sh(1b), POSIX shell sh(1p) Standards: standards(5) basename(1)
All times are GMT -4. The time now is 07:25 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy