下面是我用來創建PIE圖的shell腳本。運行shell腳本時sh -x vs bash -x
#! /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
問題陳述: -
我保存上述文件作爲chart.sh
。每當我試圖運行上面chart.sh
文件sh -x chart.sh
我總是得到錯誤原樣
syntax error at line number 3: `TEMP=$' unexpected
但是當我嘗試運行上述sh
文件原樣
bash -x chart.sh
那麼我沒有得到任何error
。爲什麼這樣?我的shell腳本中是否有任何錯誤,並假設如果我需要運行它像sh -x chart.sh
總是那麼我需要在我的shell腳本中進行更改?
我正在運行SunOS
。
什麼「sh」你跑?什麼版本的SunOS/Solaris? – Random832 2012-08-14 00:07:50
我如何找到SunOS的版本名稱?當我做'uname -a'時。我有這樣的東西 - 'bash-3.00 $ uname -a SunOS lvsaishdc3in0001 5.10 Generic_142901-02 i86pc i386 i86pc ' – AKIWEB 2012-08-14 00:10:21
您的/ bin/sh不是POSIX兼容的。 – jordanm 2012-08-14 00:11:05