0

を操作するための bash スクリプトを簡単に作成できることに興奮しましたMySQL
しかし、これを試してみてください:

#!/bin/bash  

res=`mysql -u $USER -p$PASS students <<EOF | tail -n +2  
SELECT name FROM table WHERE age = 20 limit 1;  
EOF`  

for d in $res;  
do  
echo Result : $d  
done  

結果が「John Smith」の場合、次のようになります。
Result: John
Result: Smith

スペースでこの問題を回避するにはどうすればよいですか?
単一の列でありながら2つの値として扱っているようです。

4

1 に答える 1

3

あなたが求めることを行う1つの方法は、ループの前にこれを追加することです:

IFS=$'\n'

これにより、デフォルトでスペース、タブ、および改行で機能するデフォルトの bash 内部フィールド区切り文字 (IFS) が変更されます。

おそらくこれがあなたが探しているものなので、私の例は新しい行でのみ機能します。

于 2013-07-23T18:37:37.907 に答える