Reputation: 19612
Below is my shell script which I am using to create a PIE Graph.
#! /bin/bash
TEMP=$(mktemp -t chart.html)
QUERY1=36
QUERY2=64
cat > $TEMP <<EOF
<html>
<head>
<!--Load the AJAX API-->
<script type="text/javascript" src="https://www.google.com/jsapi"></script>
<script type="text/javascript">
// Load the Visualization API and the piechart package.
google.load('visualization', '1.0', {'packages':['corechart']});
// Set a callback to run when the Google Visualization API is loaded.
google.setOnLoadCallback(drawChart);
// Callback that creates and populates a data table,
// instantiates the pie chart, passes in the data and
// draws it.
function drawChart() {
// Create the data table.
var data = new google.visualization.DataTable();
data.addColumn('string', 'Title');
data.addColumn('number', 'Value');
data.addRows([
['Error Percentage', $QUERY1],
['No Error Percentage', $QUERY2]
]);
// Set chart options
var options = {'title':'Errors',
'width':400,
'height':300};
// Instantiate and draw our chart, passing in some options.
var chart = new google.visualization.PieChart(document.getElementById('chart_div'));
chart.draw(data, options);
}
</script>
</head>
<body>
<!--Div that will hold the pie chart-->
<div id="chart_div"></div>
</body>
</html>
EOF
# open browser
case $(uname) in
Darwin)
open -a /Applications/Google\ Chrome.app $TEMP
;;
Linux|SunOS)
firefox $TEMP
;;
esac
Problem Statement:-
I saved the above file as chart.sh
. And whenever I am trying to run the above chart.sh
file as sh -x chart.sh
I always get the error as-
syntax error at line number 3: `TEMP=$' unexpected
But when I try to run the above sh
file as-
bash -x chart.sh
then I don't get any error
. Why is it so? Is there anything wrong in my shell script and suppose If I need to run it like sh -x chart.sh
always then what I need to make changes in my shell script?
I am running SunOS
.
Upvotes: 1
Views: 7457
Reputation: 63442
sh
and bash
can point to completely different executables. The fact that sh
is a symbolic link to bash
on certain systems should not make you assume the same is true everywhere. If you need bash
, use it explicitly.
EDIT(mpapis): Also note that even when you call bash
via sh
it does not behave exactly the same.
Upvotes: 3
Reputation: 38980
See this page: http://docs.oracle.com/cd/E19082-01/819-2252/6n4i8rtus/index.html for information on how to set your PATH
variable to call the POSIX-compatible version of sh
and other tools.
Upvotes: 0