まず、Node.jsを使用する場合、child_process
モジュールを使ってシェルコマンドを実行することができます。以下は、基本的な使用例です。
const { exec } = require('child_process');
exec('ls -l', (error, stdout, stderr) => {
if (error) {
console.error(`エラーが発生しました: ${error}`);
return;
}
console.log(`標準出力: ${stdout}`);
console.error(`エラー出力: ${stderr}`);
});
上記の例では、exec
関数を使用してls -l
コマンドを実行しています。コマンドの実行結果は、コールバック関数の引数として取得できます。error
はエラーオブジェクト、stdout
は標準出力、stderr
はエラー出力を表します。
この他にも、execSync
関数を使用すると同期的にコマンドを実行できますが、注意が必要です。同期的な実行はブロッキング操作となり、プログラムの実行を停止するため、非同期な方法を選択することをおすすめします。
また、ブラウザ上でシェルコマンドを実行する場合、Web APIの一部として提供されるWeb Workers
を使用すると、バックグラウンドスレッドでコマンドを実行できます。ただし、セキュリティ上の制約により、一部のコマンドの実行は制限される場合があります。
上記のコード例は、JavaScriptでシェルコマンドを実行する方法の基本的な例です。必要に応じて、コマンドの出力を解析したり、異なるコマンドを実行したりすることもできます。ただし、シェルコマンド実行には慎重に取り組み、セキュリティ上のリスクを避けるようにしてください。