2013-08-02 9 views
-1

나는 Bash 스크립트를 작성하고 있습니다. float 값인 변수가 있습니다. 예 :소수점 이하의 값을 얻으십시오.

x=2099.2 

소수점 앞에 값이 필요합니다 (예 : 2099).

${x%%.*} 

이 첫 번째 점에서 모든 것을 제거합니다

+1

이 당신을 도울 수, 허용 대답 http://stackoverflow.com/questions/8777070/linux-ksh-round-down-or-round-up-float-numbers을 확인 –

+0

당신은 또한 수 '$ {x %%. *}'를 사용하여 점의 모든 것을 제거하십시오. – fedorqui

+0

'bsh' 스크립트 란 무엇입니까? 태그가 제안하는'ksh' 또는'bash'와 같은 것을 실제로 의미하는지는 분명하지 않습니다. –

답변

1

는 다음과 같은 쉘 매개 변수 확장을 사용할 수 있습니다.

라이브를 참조하십시오

$ v=203.4 
$ echo ${v%%.*} 
203 

$ v=2.3.4 
$ echo ${v%%.*} 
2 

Bash Reference Manual → 3.5.3 Shell Parameter Expansion에서 :

$ 단어는 단지 파일 이름 확장에서 같은 패턴을 생성하기 위해 확장

{매개 변수 %% 단어} . 패턴이 매개 변수의 확장 된 값의 후행 부분과 일치하면 확장의 결과는 가장 길게 일치하는 패턴이 삭제 된 매개 변수의 값입니다. 매개 변수가 '@'또는 ''이면 패턴 제거 작업이 각 위치 매개 변수에 차례로 적용되고 확장은 결과 목록입니다. 매개 변수가 '@'또는 ''이 붙은 배열 변수 인 경우 패턴 제거 작업이 배열의 각 멤버에 차례로 적용되고 확장은 결과 목록입니다.

관련 문제