1

以下は、PIEグラフを作成するために使用しているシェルスクリプトです。

#! /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。なんでそうなの?シェルスクリプトに何か問題があり、sh -x chart.shいつものように実行する必要がある場合、シェルスクリプトに何を変更する必要があると思いますか?

私は走っていSunOSます。

4

2 に答える 2

3

sh完全にbash異なる実行可能ファイルを指すことができます。sh特定のシステムへのシンボリックリンクであるという事実は、bashどこでも同じことが当てはまると思わせるべきではありません。必要な場合はbash、明示的に使用してください。

bashEDIT(mpapis):また、経由で呼び出した場合でも、shまったく同じように動作しないことに注意してください。

于 2012-08-14T00:09:59.987 に答える
0

およびその他のツールのPOSIX互換バージョンを呼び出すように変数を設定する方法については、次のページを参照してください:http ://docs.oracle.com/cd/E19082-01/819-2252/6n4i8rtus/index.html。PATHsh

于 2012-08-14T00:16:54.337 に答える