0
나는 거기에 배열을 포함하는 명령을 가지고 있으며 Linux의 내 C 코드에서 popen을 사용합니다.popen을 사용하여 우분투에서 배열을 사용하면 작동하지 않습니다 (해결됨)
CentOS, Fedora, SUSE, Redhat에서 작동하지만 우분투에는 항상 구문 오류가 있습니다.
다음은 코드의 일부입니다.
fp = popen("counter=0;network=$(ls /sys/class/net);num_re=\"^[0-9]+$\";"
"for i in $network;"
"do"
" recv=$(cat /sys/class/net/$i/statistics/rx_bytes) trans=$(cat /sys/class/net/$i/statistics/tx_bytes)"
" r1+=(\"$recv\") t1+=(\"$trans\");"
"done;","r");
그것은 말할 것이다 -> SH : 1 : 구문 오류 : "("예상치 못한 (
) "완료"기대 내가 + = ..... T1 (R1)을 제거하면 + = ..... ., 그리고 내가 또한 스크립트로를 작성하려고합니다.
을 구문 검사를 통과 할 것이다, 그것은 작동합니다.
를 수행 누구나 알고있는 문제?
감사합니다.
를 출력 어느 당신은 비난하는 입력으로 명령을 공급해야합니다. 작성한 방법에 따라 '대시'는 '배시'가 종료 된 후에 해당 명령을 실행합니다. – Barmar
왜'bash'가 아닌'/ usr/bin/env bash'를 사용해야합니까? 이것은'$ PATH'를 통해 명령을 찾으려면'#!'줄에서해야 할 일이지만'popen()'을 사용할 때는 필요하지 않습니다. – Barmar
엘리엇, 안녕하세요. – sowrdking