LINUX.ORG.RU
ФорумAdmin

bash - экранирование кавычек

 ,


0

1

есть csv файл с структурой :логин ; пароль
есть скрипт который читает в переменные логин пароль

#!/usr/local/bin/bash

{ while IFS=';' read  u1 p1; do
   echo $p1
done; } < kz.csv

Мне надо выводить пароль в одинарные кавычки
Применив комбинацию
«'$p1'»
или
«\'$p1\'»
непрокатило.
Значение переменной выводится только с одной первой кавычкой.
99% это изза того что пароли содержат какието спецсимволы , например
qFaVih&%G$r%z7

так выводит в кавычках.
cat test.sh

#!/usr/local/bin/bash
t1='qFaVih&%G$r%z7'
echo "'$t1'"

./test.sh  
'qFaVih&%G$r%z7'

но когда циклом выгребаю, почемуто не срабатывает

более того, почемуто кавычка появлятся не там где нада и обрезается буква
cat sync.sh

#!/usr/local/bin/bash
{ while IFS=';' read u1 p1; do
USER_NAME=$u1
pass="$p1"
echo "Syncing User $USER_NAME"

echo "Syncing User" \'$pass\'

echo "Start Syncing User $u1"
done; } < kz.csv
Syncing User Khomenko@domain.com
'yncing User '?Px6~aY3Yg493Y

Как победить?

Ответ на: комментарий от I00matolog
$ awk -F';' -vq="'" '{print q$2q}' test1.txt 
'?Px6~aY3YS6m93Y'
'4qPipOzDrFtY0%Z'
'Y8Z98847p$U464#'
'x887a9575jP?hM2'

У тебя ведь не линукс, судя по /usr/local/bin/bash, так что проверяй свою систему, какой у тебя awk, ...

sdio ★★★★★ ()

Admin тут при чём?

anonymous ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.