내가 원하는 것을 얻는 데 어려움이있는 것 같습니다. 기본적으로, 나는 따옴표와 \ 문자가있는 문자열이 할당 된 일련의 변수를 가지고있다. json이 파이썬 덤프 메소드를 사용하여 따옴표를 싫어하기 때문에 인용 부호를 제거하여 json 문서 안에 삽입하고 싶습니다.변수 치환 대체 따옴표
나는 그것이 쉬울 것이라고 생각했다. 문자를 쉽게 제거하는 방법을 결정한 다음 변수 대체를위한 간단한 for 루프를 작성하십시오. 그런 식으로 작동하지 않습니다.
내가 원한다.
"MESSAGE23"이라는 변수가 있는데, 다음과 같은 "com.centrify.tokend.cac"가 포함되어 있습니다. 쉽게 인용 할 수있는 따옴표를 제거하고 싶습니다. 간단한 echo $opt | sed "s/\"//g"
. 명령 줄에서 이렇게하면 :
$> MESSAGE23="com."apple".cacng.tokend is present"
$> MESSAGE23=`echo $MESSAGE23 | sed "s/\"//g"`
$> com.apple.cacng.tokend is present
이것은 작동합니다. 올바른 형식의 문자열을 가져옵니다.
내가 루프에 던지려고하면 모든 지옥이 느슨해집니다.
for i to {1..25}; do
MESSAGE$i=`echo $MESSAGE$i | sed "s/\"//g"`
done
이 작동하지 않습니다 (중 하나가 인덱스의 무리 밖으로 또는 아무것도를 throw), 그리고 난 그냥 arg
또는 eval
또는 다른 bash는 대체 변수에 대해 충분히 알고하지 않습니다 확신 해요.
하지만 기본적으로 동일한 문제가있는 다른 변수 집합에 대해이 작업을 수행하려고합니다. 여기서 따옴표를 제거하고 우연히 "\"도 제거합니다.
도움을 주시면 감사하겠습니다.
yuck .. 아니, 배열 사용에 반대하지 않습니까? 나는 MESSAGE1-25라는 변수를 가지고 있는데, 각각을 배열에 푸시 한 다음 각각을 꺼내서 대체해야합니까? 나는이 배열을 어디에 두어야하는지 잘 모르겠다. –
오 .. 알았어. MESSAGE는 해당 배열에 배열 및 팝 값입니다. –
Right. 'MESSAGE1 = blah1','MESSAGE2 = blah2' 등 대신'MESSAGE [0] = blah1','MESSAGE [1] = blah2' 등을 할 수 있습니다. 또는 모든 것을 괄호로 초기화 할 수 있습니다. 또는'read -a'를 사용하여 파일에서 읽어 들이기 만하면됩니다. 단지 변수가 어떻게 응용 프로그램에 설정되는지에 달려 있습니다. –