You have single quote within double quote, does not work. cmd1="$( sed -n '1p' cmd)"
There's nothing wrong with that syntax. Within that command substitution, the use of single or double quotes is nothing special, even if the command substitution itself is double quoted. The only effect of double-quoting an entire subsitution is that the result of the command is protected from field-splitting and filename globbing (neither of which would happen here anyway, since operations that may yield multiple fields are not performed when assigning to a variable).
With the $( command) form, all characters following the open parenthesis to the matching closing parenthesis constitute the command. Any valid shell script can be used for command, except a script consisting solely of redirections which produces unspecified results.
The same cannot be said of the older though still widely-used backtick style, ` ... `. In my opinion, that is a very persuasive reason to never use it. The backtick version can get hairy, particularly with nesting or quoting or, or (I hesitate to even contemplate the possibility) nested quoting.
Regards,
Alister
---------- Post updated at 11:49 AM ---------- Previous update was at 11:33 AM ----------
Quote:
Originally Posted by ravi.trivedi
Hello all, I have two files which are cmd and disk.
Now I want to use the contents of both the files in a way such that
command works for hdisk2 when I write the following script:
Now whenever I try to run the script, an error is thrown regarding wrong usage of | in lsdev command. Please help me find a solution for the same. Thanx
The error is occurring because the pipe character in $comm is not treated specially. The shell command parsing step which interprets the pipe symbol as a special character has completed by the time the shell expands the variable containinig the pipe. For your approach to work, you'd need to use eval to pass the value of $comm (or $both, in your second example) through the shell parser. This has security implications, so if you are not familiar with eval, you should do some research.
Nothing that you've mentioned suggests you need to resort to eval. Aside from security issues, it can be a pain to protect metacharacters from the effects of going through the shell parser more than once. It would be simpler and much more secure and robust to simply parameterize your script so that the grep pattern can be a simple argument.
OK... I'm fairly new to unix having the admin handed to me on a platter w/almost no training.
However, being a programmer, I do pick up things fairly easily, but this one is getting the best of me.
I have a unix server that runs multiple versions of the same ERP system, hand crafted for our... (1 Reply)
Hello all:
I have a following textfile data with name inst1.txt
HDR|ABCD|10-13-2008 to 10-19-2008.txt|10-19-2008|XYZ
DTL|H|5464-1|0|02-02-2008|02-03-2008||||F|||||||||
DTL|D|5464-1|1|02-02-2008|02-03-2008|1||JJJ
DTL|D|5464-1|2|02-02-2008|02-03-2008|1||JJJ... (9 Replies)
Hi,
I want to replace a field in a text delimited file with the actual number of records in the same file.
HDR|ABCD|10-13-2008 to 10-19-2008.txt|10-19-2008|XYZ
DTL|0|5464-1|0|02-02-2008|02-03-2008||||F|||||||||
DTL|1|5464-1|1|02-02-2008|02-03-2008|1||JJJ... (3 Replies)
Hi Guys I have a question about filling up an array
I have a file called USER_FILE.txt
it contains the following:
Real Name:Thomas A Username:THOMAS_A
Real Name:Thomas B Username:THOMAS_B
Real Name:Thomas C Username:THOMAS_C
Real Name:Thomas D Username:THOMAS_D
Real Name:Thomas E... (8 Replies)
I have a string of commands I am piping some data through and I want to allow command line switches to select which commands are used. I want to do something like this: OPTION="| command3"
command1 -a -b c.txt | command2 -d -e $OPTION >result.txt
I want to do it that way because OPTION may be... (1 Reply)
hello all
i request you to give the solution for the following problem..
I want read the text file.and print the contents character by character..like if the text file contains google means..i want to print
g
go
goo
goog
googl
google
like this Using unix Shell scripting...
without using... (1 Reply)
hi i am having issues with extra pipe.
i have a data file and i need to remove the extra pipe in the(example 4th and 7thline) in datafile. there are many other line and filed like this which i need to remove from files. The sample data is below:
270 31|455004|24/03/2010|0001235|72
271... (3 Replies)
Hello,
I am trying to make a bash script that can pull data from a file and then change one part of said data.
I want to search by username and pull the full line. That way there is a way to replace just one part of that line then return it back to the file.
My Data is stored like:
... (1 Reply)
this is Korn shell unix.
The scenario is I have a pipe delimited text file which needs to be customized. say for example,I have a pipe delimited text file with 15 columns(| delimited) and 200 rows. currently the 11th and 12th column has null values for all the records(there are other null columns... (4 Replies)
Hello,
I have standard loop
while read -r info; do
command $info
done < info
in info text file I have multiple commands each on line that I want to execute. When I used them in console they worked, but not with this loop.
This is one of the commands in info file:
grep... (4 Replies)