CUI環境では、ログインするとログインシェルが起動し、直ちにシェルでの入力が可能になります。
一方、GUI環境では、例えば端末(terminal)を開くことでシェルを起動させることができます。
プログラミング言語からシェルを利用したい場合、POSIXで定義されているsystem()関数やpopen()関数を利用できます。ただし、これらを利用する際には注意が必要です。入力される内容はサニタイズ処理を行い、安全な入力にする必要があります。また、実行するコマンドが確実に実行されるかどうかを検討する必要があります。これらの操作はセキュリティの脆弱性につながる可能性があるため、慎重に扱う必要があります。
プログラミング言語によっては、より高水準のAPIが利用可能な場合もありますので、標準ライブラリなどを十分に調査することが重要です。
特殊文字の入力
シェルで特殊文字を入力したいときが稀にあります。
特殊文字を入力する方法として、エスケープ文字で入力する方法があります。echoコマンドの-eオプションでエスケープ文字が有効になります。
1 2 |
$ echo -e "\x0d" | cat -v ^M |
また、環境によって動作しないこともあるかもしれませんが、Ctrl+vを押して次のキーを押すと特殊文字を入力できます。
例えば、Ctrl+vを押した後に、Enterキー又はCtrl+mを押すことで0x0DのCRを入力できます。
1 2 |
$ echo '^M' | cat -v ^M |
また、色が表示されるかどうかは環境によりますが、シェルで入力する場合に以下のような文字を赤色にする制御コードを直接入力することができます。
1 2 3 4 |
$ echo -e '\e' | cat -v ^[ $ echo '^[[31mRED^[[m' RED |