나는 실행할 때마다 새로운 비밀번호를 생성하고, 비밀번호 길이를 묻고, 새로운 의사 무작위 비밀번호를 생성하는 연습용 C++ 프로그램을 만들었습니다.
모든 디렉터리에서 실행할 수 있도록 해당 디렉터리를 PATH 환경 변수에 추가했습니다.
다음을 통해 터미널에서 호출할 수 있도록 명령줄 인수를 가져오기 위해 실행 파일을 수정하는 방법을 알고 싶습니다.
newpass -10
또는
newpass 10
둘 다 10자의 비밀번호를 생성합니다. 현재 프로그램을 다음과 같이 실행해야 하는 대상 파일로 가지고 있습니다.
./newpass
답변1
Getopt
단 하나의 명령줄 인수를 얻는 것은 약간 과잉입니다. 나중에 프로그램에 더 많은 옵션과 매개변수가 필요한 경우 getopt
.부스트 계획 옵션도서관. 대부분의 언어(Java, Perl, Python, C, C++, Pascal 등)에는 명령줄 인수를 반환하는 함수 또는 명령문 라이브러리가 있습니다.
C 또는 C++에서는 첫 번째 인수 "10"이나 다른 인수를 정수로 간단히 변환할 수 있습니다. 모든 명령줄 인수는 문자열( char
0으로 끝나는 배열)입니다.
이 같은:
명령줄 인수를 확인하려면 기본 프로그램에 코드를 추가하세요. 예:
int pwlength(10); // or whatever the default if (argc > 1) { // put code here to convert the string in argv[0] to an integer // and store in pwlength. // If the string cannot be converted, // Print an error message and exit the program with // the statement "return 1;" or "exit(1);" which // notifies the caller of the executable that an error occurred. } std::cout << "Your password length will be: " << pwlength << std::endl;
다음에 추가목차파일이 변수
newpass
에 저장되는 위치입니다. 예를 들어 해당 파일이 디렉터리에 있다고 가정해 보겠습니다 .PATH
newpass
$HOME/bin
PATH="$PATH:$HOME/bin"
newpass
파일의 파일 모드를 변경하려면 다음 명령을 사용하십시오chmod
.
chmod +x newpass
답변2
뻔뻔하게 여기에서 복사했습니다.프로그램을 어디서나 실행 가능하게 만드는 방법
"명령줄에 내보내기만 입력하면 PATH=$PATH:</path/to/file>
세션 기간 동안에만 지속됩니다.
영구적으로 변경하려면 PATH=$PATH:</path/to/file>
~/.bashrc 파일에 내보내기를 추가하세요(마지막에만). " -오아담스