스크립팅에 몇 가지 문제가 있습니다 ... 누군가 나를 도울 수 있다면 정말 좋을 것입니다!쉘 스크립트의 산술 문제
VISITS=$((WR + RD));
SERVICE_DEMAND=$((VISITS*SERVICE_DEMAND));
을 그리고이 오류 받고 있어요 :
내 스크립트가
가./calc_serv_demand.sh: line 12: 0.0895406: syntax error: invalid arithmetic operator (error token is ".0895406")
누군가가 나를 도울 수 있습니까?
정수로만 bash가 작동하기 때문에 생각합니다.하지만 float 값을 사용해야합니다. 미리
덕분
문제 해결 :
VISITS = $ ($ 에코 WR + $ RD | BC); echo $ VISITS
SERVICE_DEMAND = $ (echo $ VISITS '*'$ SERVICE_TIME | bc); echo $ SERVICE_DEMAND
HUm ... 합계로 작동하지만 곱셈에 적합하지 않습니다. 내가 bc 매뉴얼을 확인했기 때문에 이상하게 보입니다. 보세요 : 내 스크립트 : echo $ WR + $ RD | BC &> 방문; VISITS = $ (echo $ WR + $ RD | bc); # 잘 작동합니다. echo $ VISITS SERVICE_DEMAND = $ (echo $ VISITS * $ SERVICE_TIME | bc); # 는 에코 이상한 오류를 반환 $ SERVICE_DEMAND 오류 : 0.0895406 3.42007 12.401 3.5096106 (standard_in) 1 : 구문 오류 (standard_in) 1 : 잘못된 문자 : K (standard_in) 1 : 잘못된 문자 : H (standard_in) 1 : 부적합한 문자 : T ... – Alucard
@user :'*'는 쉘에 특별한 의미가 있으므로 '\\ *'또는''* ''를 써야합니다. 또한 'VISITS = $ (echo $ WR + $ RD | bc)'파일에 출력하는 대신 계산 결과를 변수에 직접 지정해야합니다. –
@ user368453 :'*'를'echo'하면 현재 디렉토리의 모든 파일 이름을 표시합니다. 공식을 따옴표로 묶으면 작동합니다 :'SERVICE_DEMAND = $ (echo "$ VISITS * $ SERVICE_DEMAND"| bc)' –