Complex: bash, using ANSI-C quotes in skript


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Complex: bash, using ANSI-C quotes in skript
# 1  
Old 02-21-2018
Complex: bash, using ANSI-C quotes in skript

Hello,

I hope someone can hep with this. I use a skript to send multiline Data to a Monitoring system. Bu I'm not able to use linebreaks or escape sequences.

The skript is simple like that:

Code:
#!/bin/bash
var="Erste Zeile \n zweite Zeile \n Dritter Teil" 
zabbix_sender -c /etc/zabbix/zabbix_agentd.conf -k "$zabitem" -o "$var"

This works - but without the linebreaks. If I use the command on commandline with:
Code:
zabbix_sender -c /etc/zabbix/zabbix_agentd.conf -k "$zabitem" -o $'Erste Zeile \n zweite Zeile \n Dritter Teil'

the result is fine!

The question ist - how can I use the $'string' with string as a variable (like $var).

Thank you and best regards
mpm
# 2  
Old 02-21-2018
try:
Code:
var='Erste Zeile \n zweite Zeile \n Dritter Teil'

Use of single quotes setting the variable so the backslash is not interpreted until the variable is used.
# 3  
Old 02-21-2018
Welcome to the forum.

Why not try
Code:
var=$'Erste Zeile \n zweite Zeile \n Dritter Teil'

# 4  
Old 02-21-2018
Quote:
Originally Posted by rdrtx1
try:
Code:
var='Erste Zeile \n zweite Zeile \n Dritter Teil'

Use of single quotes setting the variable so the backslash is not interpreted until the variable is used.
Thank you - but this does'n woked - the result was:

25409var

---------- Post updated at 08:22 AM ---------- Previous update was at 08:15 AM ----------

Quote:
Originally Posted by RudiC
Welcome to the forum.

Why not try
Code:
var=$'Erste Zeile \n zweite Zeile \n Dritter Teil'

thank you - but this only works with hardcoded Text. In my original Programm I've to use a variable and this is why i cant use this.
to be more percise:

Code:
#!/bin/bash 
vara="Erste Zeile \n zweite Zeile" #This Values are read form a File 
varb="\n Dritter Teil" 
var="$vara" "$varb"
zabbix_sender -c /etc/zabbix/zabbix_agentd.conf -k "$zabitem" -o "$var"

# 5  
Old 02-21-2018
Quote:
Originally Posted by mpmichael

Code:
#!/bin/bash 
vara="Erste Zeile \n zweite Zeile" #This Values are read form a File 
varb="\n Dritter Teil" 
var="$vara" "$varb"
zabbix_sender -c /etc/zabbix/zabbix_agentd.conf -k "$zabitem" -o "$var"

This seems to have several problems. First, you don't put newlines into your varb string. Second, you do the catenation wrong. Actually, you should have received an error from the line which assigns to var.

You say that vara is read from a file, so I assume that it already has the newlines in place (otherwise you do something wrong when reading it). As for varb and var:

Code:
vara=$(you_said_that_this_is_read_from_a_file_somehow)
varb=$'\n Dritter Teil'  # This is literal
var="${vara}$varb" # This catenates it

# 6  
Old 02-21-2018
Please give REPRESENTATIVE examples. The following works for me:
Code:
vara=$'Erste Zeile \n zweite Zeile'
varb=$'\n Dritter Teil'
var="$vara$varb"
echo "$var"
Erste Zeile 
 zweite Zeile
 Dritter Teil

# 7  
Old 02-21-2018
Quote:
Originally Posted by RudiC
Please give REPRESENTATIVE examples. The following works for me:
Code:
vara=$'Erste Zeile \n zweite Zeile'
varb=$'\n Dritter Teil'
var="$vara$varb"
echo "$var"
Erste Zeile 
 zweite Zeile
 Dritter Teil

Of course this works, but it is not what the OP wanted. Actually, there was nearly the same answer before, and he commented on this already. He said that if he specifies the variables literally (as you did), it works for him too, so this is obviously discussed already.

So I modified his last example to be more close to what he wanted. In what way do you think that it is not representative?
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Help with Complex Bash Script

I have an FTP server with thousands of Invoices. All Invoices are in a folder called /volume1/MBSInvoices/ Monthly invoices are added to that folder every month. Here is a sample filename of the Invoices: invoice_1_20170101_10010052_10020052_10030052_JOHNDOE.pdf the Account ID is the... (6 Replies)
Discussion started by: badr777
6 Replies

2. UNIX for Beginners Questions & Answers

Bash not recognizing single quotes in Mac?

Hi, I just bought a new mac and have been running a program out of terminal, but even early on I noticed that my single quotes looked a lot different from the ones used in all of the namelists and other files of the program. Specifically, mine are kind of slanted whereas the others are very... (7 Replies)
Discussion started by: jtcastro99
7 Replies

3. Shell Programming and Scripting

Complex bash/sed, variables and nested quotes

Ok, this one isn't for everybody, it's pretty tough and I've spent a good deal of time on it without figuring it out yet. Can anybody get this script to work: #!/bin/bash cq_fname="%let outputfile="/user/cq_"$1".csv";" sed "29s/.*/\"$cq_fname\"/" file1.sas >... (3 Replies)
Discussion started by: nocloud
3 Replies

4. Shell Programming and Scripting

How to count number of double quotes in bash

Need a little help. I have just a simple string with a lot double quotes in it. I need to be able to parse through this string, and know how many double quotes I have, and where I am, so I can key off every 9th double quote. For example (coding is not complete): #!/bin/bash count=0... (3 Replies)
Discussion started by: Akilleez
3 Replies

5. UNIX for Dummies Questions & Answers

Is there a way to set ' and " as a non quotes type in bash?

Howdy, I got a script that adds a esc char before all chars interpeted by bash shell but I wan't other solution. Is there a way to set ' and " as a non quotes type in bash (some local variable)? Have found that scsh is a non-quoting type shell but after reading Why I don't use scsh as a scripting... (3 Replies)
Discussion started by: johny_be_good
3 Replies

6. Programming

why the implementatoin of Bakery algorithm in ANSI C does not work in ANSI C

I follow the description of wiki (Lamport's bakery algorithm - Wikipedia, the free encyclopedia), then implement that algorithm in C, but it doesn't work, Starving is still here, is the implementation worry? Only print out: Thread ID: 0 START! Thread ID: 0 END! Thread ID: 0 START!... (2 Replies)
Discussion started by: sehang
2 Replies

7. Shell Programming and Scripting

Howto make ksh skript bash-compatible with backticks

I have the following ksh-script: #!/bin/ksh # Ueberprüfe, ob genau ein Parameter angegeben wurde test "$#" -eq "1" || { echo "USAGE: path_cleanup <PATH_NAME>"; return 1; } # Ueberpruefe, ob awk und nawk installiert sind test -x /bin/nawk || { echo "ERROR: nawk is not installed"; return 1;... (2 Replies)
Discussion started by: doc_symbiosis
2 Replies

8. Shell Programming and Scripting

how to use in bash variables and quotes

I have some troubles with variables and quotes... I want: if $URL is empty (no user input) go to http://www.localhost/index.php/ else add this string (search) "?s=+$URL" EXAMPLE: No user input string= http://www.localhost/index.php/ User input = "unix" string=... (3 Replies)
Discussion started by: aspire
3 Replies

9. Shell Programming and Scripting

Retain quotes from bash script arguments

Hi there, I've been scouring these forums and have found similar threads, but none apparently helped me solved my problem :rolleyes: I'd like to run a command within a bash script, but that command is provided by the user to the script and may contain quotes, which is where the problem lies.... (9 Replies)
Discussion started by: cypression
9 Replies

10. Shell Programming and Scripting

Convert file from Unix - ANSI to PC - ANSI

Hi, I am creating a file in Unix using a shell script. The file is getting created in the Unix - ANSI format. My requirement is to convert it to the PC - ANSI format. Can anyone tell me how to do this? Thanks, Sunil (0 Replies)
Discussion started by: ssmallya
0 Replies
Login or Register to Ask a Question