Während der Verwendung von printf, wie spezielle escape-Zeichen, die in shell-Skript?

Ich versuche, das format ist eine Zeichenfolge mit der printf in der Schale, ich werde den input-string aus einer Datei , die Sonderzeichen wie %,',"",,\user, \tan etc.

Wie die Flucht der speziellen Zeichen, die im input-string ?

ZB

#!/bin/bash
# 

string='';
function GET_LINES() {

   string+="The path to K:\Users\ca, this is good";
   string+="\n";
   string+="The second line";
   string+="\t";
   string+="123"
   string+="\n";
   string+="It also has to be 100% nice than %99";

   printf "$string";

}

GET_LINES;

ich bin davon ausgegangen, dass es gedruckt wird, in das format, das ich gerne

The path to K:\Users\ca, this is good
The second line   123
It also has to be 100% nice than %99

Aber seine Angabe unerwartete bringt

./script: line 14: printf: missing unicode digit for \U
The path to K:\Users\ca, this is good
The second line 123
./script: line 14: printf: `%99': missing format character
It also has to be 100ice than 

Also, wie kann ich loswerden der Sonderzeichen, die beim drucken kann.? echo -e hat auch das Problem.

  • Die Möglichkeit % wird in einem parameter ist genau der Grund, warum Sie sollten nie erweitern Sie einen parameter in das erste argument printf.
InformationsquelleAutor Sarath | 2014-09-21
Schreibe einen Kommentar