저는 C로 계산기를 약간 만들고 있습니다. 간단한 산술 수식을 프로그램에 전달하고 싶습니다. 하지만 실제로 '*'문자를 내 프로그램에 전달하는 것을 좋아하지 않습니다. 왜 안 되니? 그리고 어떻게 별표를 다른 것으로 변경하지 않고이 문제를 해결할 수 있습니까? 감사합니다.* linux 명령 줄에서
답변
문자 *
은 일치하는 파일 이름을 확장하기위한 쉘의 트리거입니다. myprog "5 * 3"
- 탈출을
mycalc 5 \* 3
- 장소를 따옴표로 전체 표현식을 입력하고 있는지 확인 계산기의 파서는 그런 식으로 작동합니다
는 처리 방법에는 여러 가지가 있습니다 명령 행을 사용하십시오. 대신 자신의 입력을 사용하십시오. 당신이 뎁에서 검색 할 수 있습니다
리눅스 명령 쉘 (bash, tcsh, ksh 등)은 프로그램이보기 전에 파일 목록에 '*'를 확장합니다. 사용자가 별표를 작은 따옴표로 묶거나 백 슬래시로 이스케이프 처리하거나 'x'를 대신 사용하도록 설정할 수 있습니다. 특히 사용자 친화적 인 것은 없습니다.
*
은 현재 디렉토리의 모든 파일과 일치하도록 확장됩니다 (이를 "globbing"이라고 함). *를 인용하거나 이스케이프해야하거나 다른 기호를 사용해야합니다.
*
은 bash에서 "현재 디렉토리의 모든 항목"으로 평가됩니다. 그러나 .
은 올바르게 작동하며 수학의 곱셈 기호, 특히 스칼라 곱셈에 자주 사용됩니다.
* globbing을 호출하고 당신이하고있는 디렉토리에있는 모든 파일을 확장합니다. 그냥 말을 인용 * 및
./yourprogram '10 * 10'
또는
./yourprogram 10 '*' 10
와 같은 프로그램을 실행합니다 첫 번째 경우에는 프로그램이 1 개의 인수 만 전달하고 argv [1]는 문자열 "10 * 10"이되고 두 번째 경우는 3 개의 인수가 전달됩니다
은 "CALC"응용 프로그램은 apt-get을 설치 석회질은 3 * 3하지만 * 3
3을 탈출 시도 평가할 수있다 저장소, 별표는 C
에서 특수 문자이다*로 변경 *
마지막 기술은 언급되지 않았습니다. 모든 사용법을 인용/이스케이프 처리하는 Insteead를 사용하면 globbing을 끌 수 있습니다.
# For bash
set -o noglob
# For csh/tcsh
set noglob
# Now that noglob is set, you can safely use *
calc 3 * 3
+1 - 사용자가보다 자연스러운 언어 입력을 즐길 수 있도록 래퍼 스크립트에서 'calc'를 실행하는 것이 좋습니다. 또한 파일에서 입력을 파이핑 할 때 매우 유용합니다. –
- 1. 명령 줄에서 Linux "GUI"만들기
- 2. 명령 줄에서
- 3. linux 명령 줄에서 비디오의 녹화 시간을 찾는 방법
- 4. Gnokii는 Linux 명령 줄에서 작동하지만 PHP 시스템 명령에서는 작동하지 않습니다.
- 5. 명령 줄에서 값을 보내시겠습니까?
- 6. IIS에서 명령 줄에서
- 7. 명령 줄에서 오류가 발생했습니다.
- 8. 명령 줄에서 groovy 실행
- 9. 명령 줄에서 리디렉션 입력
- 10. 명령 줄에서 web.config 변경
- 11. 명령 줄에서 lua 코드를로드하십시오.
- 12. 명령 줄에서 cronjob 설치
- 13. MVC 명령 줄에서 Java
- 14. 명령 줄에서 Django 디버깅
- 15. SWT & JFace 명령 줄에서
- 16. 명령 줄에서 함수 호출
- 17. Maven 컴파일러 옵션을 명령 줄에서 전달하기
- 18. 셸 스크립트의 명령 줄에서 인수 구문 분석
- 19. Qt4에서 Linux 명령 실행
- 20. 증분 백업 Linux 명령
- 21. linux tail 명령
- 22. Java에서 Linux 명령
- 23. 내가 명령 줄에서 이것을 실행하고
- 24. RAD7 프로젝트를 명령 줄에서 빌드
- 25. python 명령 줄에서 VirtualBox 제어
- 26. 명령 줄에서 addr2line을 사용하는 방법
- 27. OpenJDK 코어 덤프를 명령 줄에서?
- 28. 명령 줄에서 디버그 모드 실행
- 29. 명령 줄에서 SQLite3을 어떻게 빌드합니까?
- 30. 명령 줄에서 .NET 서비스 실행
OR : 당신이 계산기를 많이 사용하려는 경우이 방법, 당신은 모든 사용을 탈출하지 않아도 항상 빈 디렉토리 : –
재미있는 아이디어를 실행합니다. 전용 * 계산 디렉토리 *로 판매 될 수 있습니다. 아니면 * 안전한 계산 환경 *. :-) – wallyk
쉘에 따라 다릅니다. 기본적으로 Bash는 아무 것도 일치하지 않으면 glob을 펼치지 않은 채 glob ('shopt -s nullglob')을 제거하거나 전체 명령 ('shopt -s failglob')을 제거하도록 구성 할 수 있습니다.예를 들어, 다른 쉘에서는'tcsh'에서 마지막 동작이 기본값입니다. – ephemient