2016-04-20 20 views
1
#usernamecheck.sh 

#!/bin/bsh 
DBUSER=user_1 
DBPASSWORD=XXXXX 
DBSOURCENAME=database_1 
DBNAME=database_1 
DBNAME1=snapshot_v 
DBSERVER=X.X.X.X 
DBCONN="-h ${DBSERVER} -u ${DBUSER} --password=${DBPASSWORD}" 

echo "select user from device_id where ip='1.1.1.1'|mysql $DBCONN $DBNAME 

このスクリプトを実行するの出力は、次のとおりです。バッシュ:コマンドライン引数問題

user 
---- 
JohnDoe 

私にIP(1.1.1.1)のユーザ名を与える上記のbashスクリプト。 IPをコマンドライン引数として渡したいと思います。 SQL構文で

エラー私は、コマンドラインを渡している

希望:私は、私は、エラーメッセージを取得し、

echo "select user from device_id where ip=$1|mysql $DBCONN $DBNAME 

を試してみましたが、

$./usernamecheck.sh '1.1.1.1' 

のように実行します引数が正しい。しかし、確かに、なぜこのエラーがポップアップですか?

答えて

2

クエリを使用する場合は、あなたが言う:

WHERE ip='1.1.1.1' 

あなたが現在言っていることは次のとおりです。

だから、あなたが不足している

WHERE ip=1.1.1.1 

に翻訳さ

WHERE ip=$1 

$1を引用して作業してください。

すべて一緒に
WHERE ip='$1' 
#  ^^ 

echo "select user from device_id where ip='$1' | mysql $DBCONN $DBNAME 
#          ^^ 
+1

感謝メイト。完璧に働いた! – Arun

関連する問題