Command output into a variable


 
Thread Tools Search this Thread
Top Forums Programming Command output into a variable
# 1  
Old 10-19-2009
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 adress te port to a pipe.
Also i have tried with function read, fgets, etc.. but I don't why, it doesn't works, just write.

Thank you


# 2  
Old 10-19-2009
Using a POSIX compatible shell (ksh, bash):
Code:
variable=$(cu -l /dev/ttyACM0 -s 9600)

# 3  
Old 10-19-2009
You'd probably want to use "popen" for that.
# 4  
Old 10-19-2009
Indeed, I missed the question was about doing it from C.
# 5  
Old 10-19-2009
Hi, thank you very much.
popen seems to works ok. But there s a problem with pclose();

when I write:

file = popen ("cu -l /dev/ttyACM0 -s 9600", "w"); //WRITE
fputs("AT\n",file);
pclose(file)


this run ok. In console:

Connected.
cu: End of file on terminal
Disconnected.


But with:

file = popen ("cu -l /dev/ttyACM0 -s 9600", "r"); //READ

there is no response when I try to close the pipe. Not Disconnected, and so i can't write one more time.

I'm trying to do this, because I need a bidirectional pipe , and the only way I know to do this is to: open to write -- > close --> open to read ---> close and another time the same
BUt pclose function failed in read mode .
thank you
# 6  
Old 10-26-2009
popen is unidirectional, closing and reopening will not allow you to establish any decent communication.


Ever heard of named pipes?

Create a named pipe /tmp/cu.in, use it:
file = popen ("cu -l /dev/ttyACM0 -s 9600 < /tmp/cu.in", "r"); //READ

Then you could write to /tmp/cu.in what you want as input for cu, and retrieve the results with fgets.

But you really should be using some kind of inter-process communication, messaging.
# 7  
Old 10-26-2009
For bidirectional pipes, you can use the "pipe" system call.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

How to get the output of a ISQL command in a variable?

I am trying to run a query which returns a sum value(a number). I want to get it in a variable so that i can refer to that variable in different places. when i am running the following command variable=`isql -Uuser -Sserver -Ppassword 1> select sum(count(*)) from xyz..abc where clm_id... (2 Replies)
Discussion started by: Sharma331
2 Replies

2. Shell Programming and Scripting

Output of find command to variable?

Hi, I'd like to assign the output of the find command to a variable. What I need is to run the find command, and if it returns zero files, the program exits. so i'm trying to assign the output of the find command to the $var1 variable....and then if this is less than one, I echo a... (2 Replies)
Discussion started by: horhif
2 Replies

3. UNIX for Advanced & Expert Users

ls output into a read command as a variable

I'm working on a short BASH script on my Ubuntu box that will run powerpoint scripts with MS Powerpoint Viewer 2007 via WINE. I can run the presentation when I run it manually but what i'd like to do is have the script look for the newest file then run it. #! /bin/sh # Start the newest... (2 Replies)
Discussion started by: binary-ninja
2 Replies

4. Shell Programming and Scripting

set variable to command output

I'm hoping you guys can help me out here. I've been trying different methods to try and get what IW as hoping would be a fairly simple script but has turned into a pain. Bit of background - I am writing a script to check values in certain failes to ensure they are corerct. I'm runnign this on... (2 Replies)
Discussion started by: stuc
2 Replies

5. UNIX for Dummies Questions & Answers

saving command output to a variable

Hello, 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... (4 Replies)
Discussion started by: philjo
4 Replies

6. Shell Programming and Scripting

Assigning output of a command to variable

When I run time -p <command>, it outputs: real X.XX user X.XX sys X.XXwhere X.XX is seconds. How I can take just that first number output, the seconds of real time, and assign that to a variable? (9 Replies)
Discussion started by: jeriryan87
9 Replies

7. Shell Programming and Scripting

get characters from output of a command in a variable

Hi, i have two questions, I am new to programming 1. I have an output of a command and i want to get some specific part of it in a variable. i am trying sr=`some comand xyz| grep 'Last Changed Rev:' | cut -c19-` now variable sr gets a end of line character at end. output of the command... (3 Replies)
Discussion started by: muaz
3 Replies

8. UNIX for Dummies Questions & Answers

ls command output to variable in script

Hi, I wrote a script to get the oldest file from a directory path (which is passed as a parameter to the script) ######################################################### XMLFILE_PATH={$1} cd $XMLFILE_PATH JPM_FILENAME = `(ls -tr User* | head -1)` #echo $JPM_FILENAME ###### END... (1 Reply)
Discussion started by: dsrookie
1 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
Login or Register to Ask a Question