私は実行するたびに新しいパスワードを生成し、パスワードの長さを尋ね、新しい疑似ランダムパスワードを生成する練習用C ++プログラムを作成しました。
すべてのディレクトリで実行できるように、そのディレクトリをPATH環境変数に追加しました。
ターミナルから呼び出すことができるように、コマンドライン引数を取得するために実行可能ファイルを変更する方法を知りたいです。
newpass -10
または
newpass 10
どちらも10文字のパスワードを生成します。現在のプログラムは、次のように実行する必要があるターゲットファイルとして持っています。
./newpass
答え1
Getopt
単一のコマンドライン引数を取得するのは少し過剰です。後でプログラムにさらにオプションとパラメータが必要な場合getopt
。ブースト計画オプション図書館。ほとんどの言語(Java、Perl、Python、C、C ++、Pascalなど)には、コマンドライン引数を返す関数またはステートメントライブラリがあります。
C または C++ では、最初の引数 "10" または他の引数を整数に簡単に変換できます。すべてのコマンドライン引数は文字列(char
ゼロで終わる配列)です。
このような:
コマンドライン引数を確認するには、基本プログラムにコードを追加してください。例:
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ファイルにエクスポートを追加します(最後のみ)。 - オアダムズ