Bash Curl,post/insert空值

Bash Curl,post/insert空值,bash,curl,Bash,Curl,有人能告诉我剧本有什么问题吗? 这是: #!/bin/sh url="http://myhost.mydomain/test.php" status=$(curl -s --head -w %{http_code} "$url" -o /dev/null) while read LINE do # #some stuffs here # if [ $status -eq 200 ] then curl -H "Content-Type:application/json" \ -

有人能告诉我剧本有什么问题吗? 这是:

#!/bin/sh
url="http://myhost.mydomain/test.php"
status=$(curl -s --head -w %{http_code} "$url" -o /dev/null)
while read LINE
do
#
#some stuffs here
#

if [ $status -eq 200 ]
then
    curl -H "Content-Type:application/json" \
    -XPOST "$url" --data '{"name":"'"$name"'","email":"'"$email"'","phone":"'"$phone"'"}'
else
    echo "Invalid Link."
done < myFile.txt
#/垃圾箱/垃圾箱
url=”http://myhost.mydomain/test.php"
status=$(curl-s--head-w%{http_code}“$url”-o/dev/null)
读行时
做
#
#这里有些东西
#
如果[$状态-等式200]
然后
curl-H“内容类型:应用程序/json”\
-XPOST“$url”--数据“{”名称“,”电子邮件“,”电话“,”$phone“,”}”
其他的
回显“无效链接”
完成
请在我发布(直接插入数据库)时查看实际结果

ID名称电子邮件电话 1 0 2安妮anne@example.com112783 3.2anne2@example.com112784
如您所见,它在ID1处发布了空值。如何避免在页面中添加/发布不必要的空值?非常感谢您的帮助。谢谢

如果$name、$email和$phone变量都是非空的,那么只添加check怎么样

if [ $status -eq 200 ]
then
    if [ -n "$name$email$phone" ]
    then
        curl -H "Content-Type:application/json" \
        -XPOST "$url" --data '{"name":"'"$name"'","email":"'"$email"'","phone":"'"$phone"'"}'
    else
        echo "Invalid data."
    fi
else

[$status-eq 200]将使用空值调用test.php。在test.php中,您需要检查$\u服务器['REQUEST\u METHOD']=='POST',如果$\u服务器['REQUEST\u METHOD'],则不插入任何内容!='POST“我很难理解@anhic的评论,尽管它基本上是正确的。
status
赋值是第一次PHP调用发生的地方,但不是当您将结果状态与200进行比较时。(1)我也不理解@anhic的注释。(2) 缺少
fi
。(3) 为什么
if-then-else
while
循环中?如果
状态
不是200,则输出仅为显示
无效链接的行。
if [ $status -eq 200 ]
then
    if [ -n "$name$email$phone" ]
    then
        curl -H "Content-Type:application/json" \
        -XPOST "$url" --data '{"name":"'"$name"'","email":"'"$email"'","phone":"'"$phone"'"}'
    else
        echo "Invalid data."
    fi
else