LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   Linux - Newbie (https://www.linuxquestions.org/questions/linux-newbie-8/)
-   -   Colour output of a script file is not coming in a html page? (https://www.linuxquestions.org/questions/linux-newbie-8/colour-output-of-a-script-file-is-not-coming-in-a-html-page-761747/)

soumyacs 10-14-2009 01:02 AM

Colour output of a script file is not coming in a html page?
 
Hello All,

I am facing a problem. Need urgent help asap. Problem is like -

I am executing a shell script which will produce output in different colour.

eg. ./test.sh
o/p Helloworld (red colour)
Hai everybody(green colour)

Now it coming in the console.

But I have written a jsp that will execute this script file(test.sh) and produce the output in a browser.

But in the browser the colour output is not coming(simple output is coming). Moreover, some code of the script file is coming in the browser.

Can anyone pls tell me what should I do??

Thanks in advance.

lutusp 10-14-2009 01:35 AM

Quote:

Originally Posted by soumyacs (Post 3718480)
Hello All,

I am facing a problem. Need urgent help asap. Problem is like -

I am executing a shell script which will produce output in different colour.

eg. ./test.sh
o/p Helloworld (red colour)
Hai everybody(green colour)

Now it coming in the console.

But I have written a jsp that will execute this script file(test.sh) and produce the output in a browser.

But in the browser the colour output is not coming(simple output is coming). Moreover, some code of the script file is coming in the browser.

Can anyone pls tell me what should I do??

Thanks in advance.

The solution is simple -- write a filter that converts Bash-style color tags into HTML-style color tags.

soumyacs 10-14-2009 01:58 AM

I searched in google but i didn't find any valuable code for this one.

Can you please do me a favor?

Can you please provide me the code(html tags) that I need to put in the html page??

Thanks in advance

lutusp 10-14-2009 03:41 AM

Quote:

Originally Posted by soumyacs (Post 3718521)
I searched in google but i didn't find any valuable code for this one.

Can you please do me a favor?

Can you please provide me the code(html tags) that I need to put in the html page??

Thanks in advance

You have the solution to your problem -- the rest is up to you.

vonbiber 10-14-2009 04:33 AM

Quote:

Originally Posted by soumyacs (Post 3718480)
I am executing a shell script which will produce output in different colour.

eg. ./test.sh
o/p Helloworld (red colour)
Hai everybody(green colour)

But I have written a jsp that will execute this script file(test.sh) and produce the output in a browser.

what is the output of your jsp?

The best would be to output and html file with this at the top:
<code>
<html>
<head>
....
<style type=text/css>
.red { color: #ff0000; }
.green { color: #00ff00; }
</style>
</head>
...
</code>

then write a filter in your shell script to translate the
bash color code to the appropriate html code, eg

your 'Helloworld' (red) should be output to
<code>
<span class=red>Helloworld</span>
</code>

and the other (green) to
<code>
<span class=green>Hai everybody</span>
</code>

soumyacs 10-14-2009 08:57 AM

I have written the below sample code in test.sh file. Now I am executing this file from JSP. The output is coming without any colour.

test.sh -


echo -e "\033[38;5;1m HelloWorld\033[0m"
else
echo -e "\033[38;5;2m Hai Everybody\033[0m"

JSP code

<% Runtime r=Runtime.getRuntime();
Process p=null;
String s=null;
String cmd="/root/test.sh";
try {
p=r.exec(cmd);
InputStreamReader isr=new InputStreamReader(p.getInputStream());
BufferedReader br=new BufferedReader(isr);
String line=null;
while((line = br.readLine()) != null){ %>

<%String str1=new String(String.valueOf(line)); %>


<%= str1 %>

........


Now please tell me the updated test.sh that I should write to get the output in colour.


Thanks in advace

vonbiber 10-14-2009 10:22 AM

Quote:

JSP code

<% Runtime r=Runtime.getRuntime();
Process p=null;
String s=null;
String cmd="/root/test.sh";
try {
p=r.exec(cmd);
InputStreamReader isr=new InputStreamReader(p.getInputStream());
BufferedReader br=new BufferedReader(isr);
String line=null;
while((line = br.readLine()) != null){ %>

<%String str1=new String(String.valueOf(line)); %>


<%= str1 %>
This is your jsp code. But what is the html output?
When you open the page in your browser what does the
'view source' display?

soumyacs 10-14-2009 01:39 PM

str1 will display the output of that linux script(test.sh) on the browser.

i.e.

HelloWorld
Hi Everybody

But this output is coming without any colour. But when I am executing the linux script the output displays in colour(red and green) in the console.

So i need the code that will convert the RGB colour tag(which i am getting in linux) to hexa tag(which i need to get on the browser) so that the output of the jsp page display in colour.

Thanks in advance

vonbiber 10-14-2009 01:46 PM

Quote:

Originally Posted by soumyacs (Post 3719237)
str1 will display the output of that linux script(test.sh) on the browser.
So i need the code that will convert the RGB colour tag(which i am getting in linux) to hexa tag(which i need to get on the browser) so that the output of the jsp page display in colour.

what's the format of your RGB color tag?
Is is something like
1.0,0,0 etc.
or
255,0,0 etc.
?

If you know already that you only have red and green tags,
I already gave you the hex code for these colors.
Here are hex code that you can use in html:
Code:

red: #ff0000
green: #00ff00


soumyacs 10-14-2009 02:01 PM

ya that i know. But my problem is that the str1 variable holds two string (HelloWorld Hi Everybody). If i write

< font color="#ff0000"><%=str1%></font>

only one colour(red) will come not two different colours. Because the string itself holds two values and displays it at a time rather displays it one by one.

So I think, I have to do such a thing(generic) in the jsp page that can understand the linux script colour(whatever it is coming in the shell console) and display its own browser.

Thanks in advance.

soumyacs 10-14-2009 02:06 PM

echo -e "\033[38;5;1m

38 represents no background colour, 5 represents RGB colour mode, 1m is red font.

Now this script file is working fine in the console as the output displays in colour.


but in the browser it is coming (after executing ths jsp)

[38;5;1m Helloworld [0m ---> without any colour

i92guboj 10-14-2009 02:58 PM

I really can't see what surprises you. A web browser is not an ANSI display, a browser understands HTML, not ANSI, not assembler, not C or C++. It's not your script's fault. You either need to make an ANSI->HTML converter that will parse your script's output. Or, alternatively, you could just modify your script, so it echoes valid HTML instead of plain text with ANSI control characters.

The complexity and exact way to do it will only depend on the concrete HTML dialect you are using. Try googling for something along the lines of "ansi to html converter" to get a general idea.


All times are GMT -5. The time now is 04:52 AM.