사용자가 올바른 형식으로 데이터를 입력하고 있는지 확인하기 위해 스크립트에 검사를 구현하려고합니다.
4K
25K
17K :Bash 검사 특히 형식화 된 사용자 입력
I 사용자가 직접 문자 'K'유효한 입력
예 다음 양의 정수를 입력되도록 것이라는 체크 필요
유효하지 않은 입력의 예
2.1
4J
-2k
I 필요한 것을
경우 [입력이 올바른 형식이다]; 다음
...
...
Fi를
편집 :
경우 : 지금까지 내가이 위해 가지고하는 것은 다음입니다! [[regex = ~^[1-9] + k $]];
하지만 이것이 작동하지 않는 것 같습니다. 어떤 아이디어?
이것은 다소 까다 롭습니다. 나는 사용자가 최소값과 최대 값 바로 아래에 'k'가오고 공백없이 대시로 구분 된 값의 범위를 입력하도록하는 점검이 필요하다. 공백없이 쉼표로 구분되는 여러 범위를 입력 할 수도 있습니다. 유효 입력
예 :
4K-5K
1K-2K
3K-6K, 1,000 - 9,000, 3K-8K
2K-5K, 잘못된 입력 12K - 20K
예
2.5-3 4K-10K
4K-3K, 8K-9K
7K - 9K는, -3-6
내가 무엇이 필요
[입력 형식이 올바른 경우]]; 다음
...
... 이것은 regular expressions in BASH를 사용 할 매우 합리적이다
이것은 작동하지 않습니다. 솔루션이 필요합니다. 나는 당신이 가까이에 있다고 생각한다. – Ryan
오타가 수정되었지만 "여전히 작동하지 않는다"는 아이디어가 없다면 더 디버깅하기가 더 어려울 것이다. 어쨌든, StackOverflow는 코드 작성 서비스가 아닙니다. 잘하면이 답변은 적절한 솔루션을 작성할 수있을만큼 가까운 거리에 있습니다.:) –
글쎄, 당신이 * 기호를 사용하고 있습니다. 앞의 문자가 0 개 이상 일치하기 때문에 작동하지 않습니다. 사용자가 적어도 한 자리 숫자를 입력해야하므로 + 연산자 대신 *가 필요합니다. 지금 내가 가진 ! [[regex = ~^[1-9] [0-9] + k $]]; then 그리고 이것은 작동하지 않는 것 같습니다. 내가 사용하는 입력에 관계없이 전달할 수는 없다. 여기까지 귀하의 도움에 진심으로 감사드립니다. – Ryan