To Supress *


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting To Supress *
# 1  
Old 10-08-2014
To Supress *

Hi Team ,

I want supress the meaning of * while passing it as parameter.
I have file which contains file format and destination directory.

Code:
let say abc* |/home/xyz

I had function which will read these values and pass it to another function.
Code looks like below

Code:
func1 ()
{
file_format = (first field value from the file
remote_dir= (second field from the file)
func2  file_format remote_dir
}

function 2   
{
echo  $1
echo  $2
)

when I printed I am getting
Code:
$1 as abc1.dat and $2 has abc2.dat

.
but I want it to be
Code:
$1 as abc* and $2 has /home/xyz

I am using korn shell OS AIX

Last edited by Scrutinizer; 10-08-2014 at 07:38 PM.. Reason: code tags
# 2  
Old 10-08-2014
Put your variables in double-quotes to suppress wildcard expansion and splitting.

Code:
echo "$1"

This User Gave Thanks to Corona688 For This Post:
# 3  
Old 10-08-2014
It is not working. I tried that option also before posting my query
# 4  
Old 10-08-2014
In what way is it not working? Show exactly what you do and exactly what happens. Word for word, keystroke for keystroke. Don't paraphrase anything when you don't know what's relevant or not.
# 5  
Old 10-08-2014
Also
Code:
func2  "$file_format" "$remote_dir"

# 6  
Old 10-08-2014
Code:
abc\*  or 'abc*'

This User Gave Thanks to Aia For This Post:
# 7  
Old 10-08-2014
Quote:
Originally Posted by Aia
Code:
abc\*  or 'abc*'

Understand that once expansion of the wildcard has happened it can't be taken back. The shell itself expands the wildcard before it passes what it has expanded the wildcard to to the respective program.

Here is an example: suppose you call the program "ls". You enter on the commandline

Code:
ls *

first, the shell notices the wildcard and replaces it with all the filenames in the directory. Let us suppose there are three files, "file.a", "file.b" and "file.c". The shell replaces the asterisk for these names, arriving at:

Code:
ls file.a file.b file.c

This is what "ls" will be presented, because all the expanding is done before "ls" is even called.

So far, so good. Now suppose you do:

Code:
subfunc ()
{
   echo "$1"
}

subfunc *

You have protected the argument inside the function, but because you didn't protect the wildcard when calling the function "subfunc()" will only be presented the result of its expansion. You will need:

Code:
subfunc ()
{
   echo "$1"
}

subfunc "*"

Also notice, that shell interpretation "eats away" protection:

Code:
var="echo *"
$var

The asterisk inside the variable declaration seems to be protected, but by expanding the line "$var" the shell removes the quotation and when the line is executed it is interpreted a second time. Both the following modifications would work, both times it boils down to doubly double-quote, so to say:

Code:
var="echo *"
"$var"

var="\"echo *\""
$var

I hope this helps.

bakunin
This User Gave Thanks to bakunin For This Post:
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Supress the psswd from ps in ksh/bash

I am running the ETL job to passing the database username,pssswd positional arguments to shell script (bash) and how can we suppress/hide the password from ps command. (2 Replies)
Discussion started by: pimmit22043
2 Replies

2. Shell Programming and Scripting

How to supress output from tar and unzip commands?

I have the below two commands in my script. tar -xf hello.tar unzip -o tempp.zip When i run the script i see the below on my standard out. How can i suppress output coming from both the tar and unzip on my standard output. (3 Replies)
Discussion started by: mohtashims
3 Replies

3. Shell Programming and Scripting

Supress text

Hi, I was looking for a simple code to suppress the text between 2 characters. the characters can be of same kind like "*" or "(" and ")". The number of characters are not consistent and could vary. How can I suppress the text between 2 characters? Example: Input : Hello (Within Bracket)... (8 Replies)
Discussion started by: ahmedwaseem2000
8 Replies

4. Shell Programming and Scripting

AWk - supress warning

Hi, I am trying to run a script using awk and sed a few times. The script itself seems to work fine but in a final awk statement it throws up a warning: awk: warning: escape sequence `\.' treated as plain `.' script: ... (3 Replies)
Discussion started by: HugoDarley
3 Replies

5. Shell Programming and Scripting

supress error messages

Hi I have a script which connects to oracle using sqlplus if ! check_sqlplus "$ORACLE_SID" ; then echo "Unable to use sqlplus for sid $ORACLE_SID" return 1 else echo "attempting to connect to database" echo $ORACLE_HOME echo $ORACLE_SID echo "Status before entering... (2 Replies)
Discussion started by: xiamin
2 Replies

6. Shell Programming and Scripting

how to supress the trace

Hi I am working in ksh and getting the trace after trying to remove the file which in some cases does not exist: $ my_script loadfirm.dta.master: No such file or directory The code inside the script which produces this trace is the following: ] || rm ${FILE}.master >> /dev/null for... (3 Replies)
Discussion started by: aoussenko
3 Replies

7. UNIX for Advanced & Expert Users

Supress error message

Hi All this is a simple script #! /bin/bash FileCnt=`ls -lrt $DIR/* | wc -l` echo $FileCnt how could i escape the error msg if there are no files in $DIR ls: /home/sayantan/test/files/cnt/*: No such file or directory 0 Looking forward for a quick reply Regards, Newbie (2 Replies)
Discussion started by: newbie07
2 Replies

8. Shell Programming and Scripting

How do I supress certian output with find?

I am using this command find . -type f -mmin "+$t" > holder Unfortunatley that is also printing files that begin with a period. Such as .bash_history. What can I do to supress files that begin with a period? (1 Reply)
Discussion started by: chrchcol
1 Replies

9. UNIX for Advanced & Expert Users

Supress special chars in vi

Hi, One of our application is producing log files. But if we open the log file in vi or less or view mode, it shows all the special characters in it. The 'cat' shows correctly but it shows only last page. If I do 'cat' <file_name> | more, then again it shows special characters. ... (1 Reply)
Discussion started by: divakarp
1 Replies

10. UNIX for Dummies Questions & Answers

Supress screen output...

I need to suppress the output to the screen. I am appending to a file so do not need the output on the screen in the CLI environment. eg. cat $HOME/somefile >> $HOME/anotherfile I am doing this a number of times with SQL output files so I can look at the finished file not on the screen in the... (3 Replies)
Discussion started by: jagannatha
3 Replies
Login or Register to Ask a Question