シェルスクリプトでnode.jsがすでにインストール済みかチェックするには?
シェルスクリプトを始めたばかりなのですが、
件名の処理をどのようにしたら良いかわからず質問しました。
macにてシェルスクリプトを使って、Node.jsが入っていなければ、
Node.jsをダウンロードするという処理を書きたいのですが
入っていればと言うのをどのように書けば良いかわかりません。
Node.jsのダウンロードは、
下記のコマンドで実現できました。
curl -O https://nodejs.org/dist/v0.12.5/node-v0.12.5.pkg
処理としては下記のようになるはずです。
#!/bin/sh
if アプリが存在しない then
curl -O https://nodejs.org/dist/v0.12.5/node-v0.12.5.pkg
fi
MacOSX:10.10.3
■最終目的は下記の手順をシェルスクリプト化する事です。
●Node.jsダウンロード
●ファイルサーバーとするフォルダを指定
1:フォルダ作成
2:コマンドプロンプトから1:のフォルダへ移動
例)cd /path/to/my/project
3:コマンドプロンプトにて下記入力
npm install connect
●jsファイルを1のフォルダに作成
・jsファイルの中身は下記ソース
var connect = require('connect'),
serveStatic = require('serve-static');
var app = connect();
app.use(serveStatic(__dirname));
app.listen(5000);
・適当な名前で保存
仮にserver.jsとする。
●コマンドラインからサーバー実行
1:コマンドプロンプトからjsファイルのフォルダへ移動
2:下記コマンド入力
npm install serve-static
3:下記コマンド入力
node server.js
●下記htmlをindex.htmlという名前で作成し、
jsファイルと同じフォルダに置く
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="utf-8">
<title>hello connect</title>
</head>
<body>
hello connect
</body>
</html>
●ブラウザから下記URLをたたいてみると、
hello connect と表示される。
表示されない時は、app.listen(5000)の
ポート番号を変えてみて下さい。
06/26 追記
お力添えのおかげでとりあえず版ができました。
#!/bin/sh
node -v &> /dev/null
if [ $? -ne 0 ]; then
curl -O https://nodejs.org/dist/v0.12.5/node-v0.12.5.pkg
fi
Current=`pwd`
NodePath=/NodeJs
CheckPath=$Current$NodePath
if [ ! -e $CheckPath ]; then
mkdir -m 777 NodeJs
fi
cd $CheckPath
npm install connect
echo $CheckPath
JsFileName=LocalServer.js
if [ ! -e $JsFileName ]; then
touch $JsFileName
chmod 777 $JsFileName
JsString="var connect = require('connect'),
serveStatic = require('serve-static');
var app = connect();
app.use(serveStatic(__dirname));
app.listen(5000);"
echo "$JsString" > $JsFileName
fi
echo $JsFileName
HtmlFileName=Index.html
if [ ! -e $HtmlFileName ]; then
touch $HtmlFileName
chmod 777 $HtmlFileName
HtmlString="<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="utf-8">
<title>hello connect</title>
</head>
<body>
Make FileServer Success!
</body>
</html>"
echo "$HtmlString" > $HtmlFileName
fi
echo $HtmlFileName
npm install serve-static
echo "Install End"
node $JsFileName