How to use printf to output a shell variable path?


 
Thread Tools Search this Thread
Top Forums UNIX for Beginners Questions & Answers How to use printf to output a shell variable path?
# 1  
Old 09-30-2016
Question How to use printf to output a shell variable path?

So I created two shell variables: COLUMN1_HEADING, COLUMN2_HEADING.
They have values:
Code:
COLUMN1_HEADING="John"
COLUMN2_HEADING="123456789"

How would I use printf to get it to print an output like this:
Code:
$COLUMN1_HEADING\t$COLUMN2_HEADING\nJohn\t123456789\n

Thanks!

Last edited by Scrutinizer; 09-30-2016 at 06:50 PM.. Reason: code tags
# 2  
Old 09-30-2016
Hi,

Can you try this and see if this helps?

Code:
A=1234;
B=Welcome
printf "%s%s\n" "\$A\t\$B\n$A\t$B\n"

Outputs:
Code:
$A\t$B\n1234\tWelcome\n

# 3  
Old 09-30-2016
Quote:
Originally Posted by greet_sed
Hi,

Can you try this and see if this helps?

Code:
A=1234;
B=Welcome
printf "%s%s\n" "\$A\t\$B\n$A\t$B\n"

Outputs:
Code:
$A\t$B\n1234\tWelcome\n

Hi greet_sed,
That is close, but there is an extra %s in your printf format string. Since there is only one operand to be formatted, only one %s is needed:
Code:
A=1234;
B=Welcome
printf "%s\n" "\$A\t\$B\n$A\t$B\n"

produces the same results you showed us above.

Alternatively, you could also try the following (note the difference between using single quotes to avoid parameter expansions instead of escaping the dollar sign inside double quotes in the format operand):
Code:
A=1234;
B=Welcome
printf '$A\\t$B\\n%s\\t%s\\n\n' "$A" "$B"

which also produces the same output.
These 3 Users Gave Thanks to Don Cragun For This Post:
# 4  
Old 10-03-2016
I suppose it depends on what steezuschrist96 actually wanted. Perhaps the output was to include tabs rather than the literal \t characters to line up the output.

To do that, would it be be more of a:-
Code:
printf "\$COLUMN1_HEADING\t\$COLUMN2_HEADING\n%s\t%s\n" "$COLUMN1_HEADING" "$COLUMN2_HEADING"

Output is:-
Code:
$COLUMN1_HEADING	$COLUMN2_HEADING
John	123456789

The columns don't line up because the literal $COLUMN1_HEADING is so long.

Convert to this to line it up:-
Code:
printf "\$COLUMN1_HEADING\t\$COLUMN2_HEADING\n%s\t\t\t%s\n" "$COLUMN1_HEADING" "$COLUMN2_HEADING"

... giving you:-
Code:
$COLUMN1_HEADING	$COLUMN2_HEADING
John			123456789


I hope that this help, but apologies if I've got the wrong end of the stick.



Robin
Login or Register to Ask a Question

Previous Thread | Next Thread

8 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

Locating shell script files with the $PATH variable

I've created a test script, which is located in $HOME/bin. The script runs as expected with no issues. However, upon echo'ing the $path variable the location of my script is not located in any of the directories listed in $path. So my question is, how does shell know where the script is located... (2 Replies)
Discussion started by: BrandonD
2 Replies

2. Shell Programming and Scripting

Parse output path to set variable

I am looking to parse a text file output and set variables based on what is cropped from the parsing. Below is my script I am looking to add this feature too. All it does is scan a certain area of users directories for anyone using up more than X amount of disk space. It then writes to the... (4 Replies)
Discussion started by: es760
4 Replies

3. Shell Programming and Scripting

"find . -printf" without prepended "." path? Getting path to current working directory?

If I enter (simplified): find . -printf "%p\n" then all files in the output are prepended by a "." like ./local/share/test23.log How can achieve that a.) the leading "./" is omitted and/or b.) the full path to the current directory is inserted (enclosed by brackets and a blank)... (1 Reply)
Discussion started by: pstein
1 Replies

4. Shell Programming and Scripting

C Shell path variable causing very slow shell!?HELP

I am using C Shell MKS Toolkit and I ran into a huge problem when setting up some environment variables.:confused: The csh script that I have as my login script runs fine but very very slow. When I add a directory to my PATH it seems to slow down shell startup and even slow down the commands. ... (0 Replies)
Discussion started by: vas28r13
0 Replies

5. Programming

capture the output of printf into another variable

Hi , I wonder if in java I can pipe the below output of the printf into a variable: System.out.printf(" This is a test %s\n", myVariable); I want to keep the output of the printf command to create my history array. Thanks. (2 Replies)
Discussion started by: arizah
2 Replies

6. Shell Programming and Scripting

Error in setting PATH variable in bash shell

Hi, I am new to shell scripting.I tried adding an entry to the path variable like below export PATH=$PATH:/opt/xxx/bin But am getting an error invalid identifier /opt/xxx/bin Can someone tell me the error above and correct me . Thanks and Regards, Padmini (2 Replies)
Discussion started by: padmisri
2 Replies

7. Shell Programming and Scripting

Reading a path (including ref to shell variable) from file

Hi! 1. I have a parameter file containing path to log files. For this example both paths are the same, one is stated directly and the second using env variables. /oracle/admin/orcl/bdump/:atlas:trc:N ${ORACLE_BASE}/admin/${ORACLE_SID}/bdump/:${ORACLE_SID}:trc:N 2. I try to parse the path... (1 Reply)
Discussion started by: lojzev
1 Replies

8. Shell Programming and Scripting

Set Path variable in c shell

I set my path environment variable in c shell, using the syntax below setenv PATH "${PATH}:/usr/local:/usr/local/bin" and placed this in $HOME/.login $HOME/.cshrc and /etc/.login /etc/.cshrc but when I issued echo $PATH or set command the output does not reflect changes made to... (5 Replies)
Discussion started by: hassan2
5 Replies
Login or Register to Ask a Question