Visit Our UNIX and Linux User Community

saving command output to a variable

Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers saving command output to a variable
# 1  
Old 01-20-2009
saving command output to a variable


I have a shell script containing a command string in the following format:

command1 | command2 | cut -c9-16

The output from this is a record number (using characters 9-16 of the original output string) e.g. ORD-1234
I wish to save this value to a variable for use in later commands within the same script.

If I run the commands without defining the variable it runs OK and returns the correct number to the screen.
I tried doing var1=`command1 | command2 | cut -c9-16`
but I kept getting some syntax errors (probably due to the fact that command 1 does an echo of a long string of characters containing lots of ^ as field delimiters)

Please can anyone suggest the best way to do this?

Many thanks
# 2  
Old 01-20-2009
Tools An alternate format you might be able to use

var1=$(command1 | command2 | cut -c9-16)

# 3  
Old 01-20-2009
I get this error message:
syntax error at line 4: `var1=' unexpected
# 4  
Old 01-20-2009
Question Need to see more detail, and not just 'command'

What is the output from that line you are looking to capture? Is it just a number, a string of text, are there carriage return/line feeds?

Can you provide a section of the script (this is at line 4) and the actual line you are typing.
# 5  
Old 01-20-2009
The output I am trying to capture is in the format "ORD-1234" where the numbers will depends on the record number. it will be 4 digits after the ORD-
There shouldn't be a carriage return.

the command on line 4 that works at present is:
echo "string" | dbserver -h -s | cut -c9-16

where dbserver is a program-specific utility to export data from a specialised database program we have running on the server.
The "string" contains data/commands in a specific coded format that the dbserver program can execute, and this exports another string. the Cut command then outputs characters 9-16 in the format shown above.
This runs OK until I try to assign the output to a variable.

Previous Thread | Next Thread
Test Your Knowledge in Computers #862
Difficulty: Medium
Vue uses an HTML-based template syntax that allows binding the rendered DOM to the underlying Vue instance's data.
True or False?

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Saving Mod in a variable

Hello Experts, In one of my shell script, I've been trying to calculate mod and saving it in a variable, below is what I have tried but it isn't working. Any help appreciated!!! #!/bin/bash num1=4 num2=3 echo "Number one is $num1" echo "Number two is $num2" mod_final=$(( echo "num1%num2"... (7 Replies)
Discussion started by: mukulverma2408
7 Replies

2. Shell Programming and Scripting

sed command is saving output as blank file

Hi, I am working on a script where I am adding adding colors to few of the info in the output. Now , after that is done , I see colour codes in log files which I don't want to see.:mad::mad::mad::mad: So , I tried using sed command in script as below which gives me o/p (new.log) as blank file... (7 Replies)
Discussion started by: Dream4649
7 Replies

3. Shell Programming and Scripting

Saving files with file name as output

Hi, i need help with a file creation of an output program. I've got a program that with #find creates an output for each files in a directory. If i give this command : -o spec$(date -u +%Y%m%dt%H%M) it creates just one file, overwriting all the others since it is the creation date .... (2 Replies)
Discussion started by: Board27
2 Replies

4. Shell Programming and Scripting

saving output from bash into a file

I am ssh to many servers to get some information... however sometimes the server is unreacheable and i am getting an error. I want to save that output to a file but I am not able to do so... I want to be able to save output of bash into a file.. so when I run this command on a script ssh... (5 Replies)
Discussion started by: eponcedeleonc
5 Replies

5. UNIX for Dummies Questions & Answers

Saving a temporary output within a script

Good morning everyone, i am looking to know how to save the output of a command and reuse it again within a script i already tired this one but it didn't work TEMPDIR=/dir1/dir2 My_command> $TEMPDIR/$TEMPFILE rm $TEMPDIR/$TEMPFILE* it keeps saying "cannot write to a... (15 Replies)
Discussion started by: Portabello
15 Replies

6. Shell Programming and Scripting

Trouble saving variable

Hi, I have problems when you save a variable of a command. I have put the following line: CONEXION_BAGDAD = $ (grep-c "Please login with USER and PASS" $ LOG_FILE_BAGDAD) But I returned the following error: syntax error at line 67: `CONEXION_BAGDAD = $ 'unexpected Because it can happen?... (2 Replies)
Discussion started by: danietepa
2 Replies

7. Programming

Command output into a variable

Hi, with this command: cu -l /dev/ttyACM0 -s 9600 > name.txt I put the output of the port in a txt Is posible to do the same (or similar) in a var directly, inside a C program? cu -l /dev/ttyACM0 -s 9600 > variable ? I have trying this withs pipes, but i dont know how to... (6 Replies)
Discussion started by: daaran
6 Replies

8. Shell Programming and Scripting

Saving output from awk into a perl variable

How would I pass awk output to a perl variable? For example, I want to save the value in the 4th column into the variable called test. My best guess is something as follow, but I am sure this isn't correct. $test = system("awk '/NUMBER/{print \$4}' $_"); (8 Replies)
Discussion started by: userix
8 Replies

9. Shell Programming and Scripting

Assigning output of command to a variable

Hi, I'm trying to assign the output of a command to a variable and then concat it with another string, however, it keeps overwriting the original string instead of adding on to the end of the string. Contents of test.txt --> This is a test var1="`head -n 1 test.txt`" echo $var1 (This is a... (5 Replies)
Discussion started by: oma04
5 Replies

10. Shell Programming and Scripting

Command output to a variable.

With cut -c 8-13 myfile, I am getting some numeric value. In my shell script I am trying to assign something like this, var=cut -c 8-13 myfile But at the time of execution I am getting -c is not found. If I dont assign, then script executes well. Can we not simply use the value from one... (8 Replies)
Discussion started by: videsh77
8 Replies

Featured Tech Videos