Я хочу обновить mysql db из сценария Bash, задав значение переменной из того же скрипта.Обновить значение mysql с помощью переменной Bash
IP=$1
IP="xmpp:`echo $IP`:5222"
#IP='10.10.10.122'
echo $IP
mysql -ulol -plol -Ae 'update cs.load_b set dest_uri="$IP" where group_id="1" limit 1;'
mysql -ulol -plol -Ae 'select * from cs.load_b;'
код выполняется следующим образом:
./dbup.sh 10.10.10.122
В настоящее время обновление устанавливает значение $IP
:
mysql: [Warning] Using a password on the command line interface can be insecure.
+----+----------+------------+--------------+------------+-------------+
| id | g_id | dest_uri | resources | p_mode | desc |
+----+----------+------------+--------------+------------+-------------+
| 2 | 1 | $IP | xmpp=300 | 0 | |
+----+----------+------------+--------------+------------+-------------+
Я ожидаю:
mysql: [Warning] Using a password on the command line interface can be insecure.
+----+----------+------------+--------------+------------+-------------+
| id | g_id | dest_uri | resources | p_mode | desc |
+----+----------+------------+--------------+------------+-------------+
| 2 | 1 | xmpp:10.10.10.122:5222|xmpp=300| 0 | |
+----+----------+------------+--------------+------------+-------------+
Mysql версии 5.7 .17, CentOS 7
Ответ на chepner:
48 # Network Address qualifier
49 qualify_ip() {
50 echo ".................................................."
51 if [[ $1 =~ ^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$ ]]; then
52 OIFS=$IFS
53 IFS='.'
54 ip=($1)
55 IFS=$OIFS
56 [[ ${ip[0]} -le 255 && ${ip[1]} -le 255 \
57 && ${ip[2]} -le 255 && ${ip[3]} -le 255 ]]
58 echo ".................................................."
59 echo "$1 is a valid network address"
60 echo ".................................................."
61 else
62 echo ".................................................."
63 echo "$1 is not a valid network address. Exiting."
64 echo ".................................................."
65 exit 1
66 fi
67 echo ".................................................."
68 }
..
365 qualify_ip $IP
Я только в том числе то, что было необходимо для вопроса.
Что это значение '$ PUBLIC_IP' здесь? – Inian
Что еще более важно, что вы делаете, чтобы проверить значение 'PUBLIC_IP', прежде чем использовать его для построения инструкции SQL? – chepner