IFS的引发的血案

sh/bash/dash/ksh/zsh等Shell脚本
回复
头像
枫叶饭团
帖子: 14683
注册时间: 2010-06-16 1:05
系统: Mac OS X
来自: Tencent
联系:

IFS的引发的血案

#1

帖子 枫叶饭团 » 2013-07-31 20:36

代码: 全选

#!/bin/bash

echo "Content-type: application/json"
echo ""

OIFS="$IFS"
IFS="${IFS}"
set $QUERY_STRING
Arg="$1"
IFS="$OIFS"


IP=`echo $1|sed 's/.*\(^[0-9.]*\).*/\1/g'`
MYSQL_CONN="/usr/bin/mysql -uroot -h172.25.100.2 -p123 -pproxy db_network_agent"
${MYSQL_CONN} “SQL语句”
exit 0
为什么我这样子改了IFS之后,${MYSQL_CONN}就没办法运行了。。。我看了下报错,提示的是not found啥的,一头雾水,可以肯定是IFS的问题
头像
millenniumdark
论坛版主
帖子: 4159
注册时间: 2005-07-02 14:41
系统: Ubuntu 14.04 (Kylin)
联系:

Re: IFS的引发的血案

#2

帖子 millenniumdark » 2013-08-04 20:23

IFS恐懼症患者。

我寧願用 plan9的rc。
goldlegend
帖子: 2
注册时间: 2013-02-25 23:50
系统: ubuntu 12.04

Re: IFS的引发的血案

#3

帖子 goldlegend » 2013-08-04 20:41

好像应该这样写:
: ${MYSQL_CONN}
因为${MYSQL_CONN}不是一个命令,只是一个变量替换。
你试试啊,我也是菜鸟。
头像
lxf1992521
帖子: 240
注册时间: 2011-06-26 18:28
联系:

Re: IFS的引发的血案

#4

帖子 lxf1992521 » 2013-08-04 22:09

应该是“eval ${MYSQL_CONN}”

代码: 全选

eval: eval [参数 ...]
    将参数作为 shell 命令执行。
    
    将 ARGs 合成一个字符串,用结果作为 shell 的输入,
    并且执行得到的命令。
    
    退出状态:
    以命令的状态退出,或者在命令为空的情况下返回成功。
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙

Re: IFS的引发的血案

#5

帖子 eexpress » 2013-08-04 22:38

很久以前,经常有人借了不还,被骂不负责。
● 鸣学
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙

Re: IFS的引发的血案

#6

帖子 eexpress » 2013-08-04 22:39

bash罗嗦的。你直接设置就是。

代码: 全选

● echo $IFS|hexdump 
0000000 000a                                   
0000001
● 鸣学
头像
枫叶饭团
帖子: 14683
注册时间: 2010-06-16 1:05
系统: Mac OS X
来自: Tencent
联系:

Re: IFS的引发的血案

#7

帖子 枫叶饭团 » 2013-08-06 19:28

神的神经错乱了?
我把IFS的设置去掉之后运行是正常的- -
难道是IFS把变量都改了- -
回复