複数の引数を単一の引数のように扱うBashスクリプト。複数の引数を複数の引数として扱う必要がある

複数の引数を単一の引数のように扱うBashスクリプト。複数の引数を複数の引数として扱う必要がある

「sudo」のように、Web ページで ping、wget、cat などの操作を実行できるかどうかをテストできるコマンドを作成したいと思います。この bash スクリプトは、「www ./test.py」などの単一のコマンドでは正常に動作しますが、cat コマンドには他の情報が必要です。「www ping 192.168.XX」と入力すると、これが返されます。(.XX はローカル IP です)

sudo: ping 192.168.XX: コマンドが見つかりません

#!/bin/bash

if [ -z "$@" ]
   then
     echo "No arguments supplied"
     sudo -u www-data bash
     exit 0
else
     echo "Hello world"
     sudo -u www-data "$*"
     exit 1
fi

#sudo -u www-data bash

PS. これはシステム上のどのユーザーにも使用できます。ここでは例として www-data を使用しました。

関連情報