Я пытаюсь объединить строку IP с остальной частью RegExp для более поздней команды. Вот код:Bash concatenate wierd output?
ip=$(grep -oP 'server-ip=\K(.*)' server.properties)
echo "Server IP: ${ip}"
ip=${ip//\./\\\.}
exp=':19132\s+0\.0\.0\.0:.*\s+\K([0-9]+)'
regexp="${ip}$exp"
echo "netstat -tulpn | grep -oP '${regexp}'"
#pid=$(netstat -tulpn | grep -oP '${regexp}')
Значение $ ip является допустимой строкой IP. и позже он имеет escape-последовательность \ (например, 127.0.0.1)
Затем я пытаюсь объединить это значение $ ip с $ exp. для ожидаемого выхода
127\.0\.0\.1:19132\s+0\.0\.0\.0:.*\s+\K([0-9]+)
Однако вместо этого я получаю что-то вдоль линий
:19132\s+0\.0\.0\.0:.*\s+\K([0-9]+)\.0\.1
Я довольно новыми для Bash, так что я предполагаю, что это что-то реально легко, но любая помощь?
Благодаря
Не требуется, значение, возвращаемое с него, является строкой IP-строки, например. 127.0.0.1 –
не так ли? действительно? http://stackoverflow.com/help/mcve, то почему бы вам не подставить его в свой код? –
http://pastebin.com/2bRbFnvR –