1. ホーム
  2. スクリプト・コラム
  3. リナックスシェル

シェルスクリプトをインタラクションフリー化する4つの方法

2022-02-07 22:55:47

シェルスクリプトを書く過程で、リアルタイムに何らかのパラメータを取る必要がある操作に遭遇することが多く、これにはインタラクションフリーが必要です。そのため、シェルスクリプトをより強力なものにすることができます。

インタラクションフリーの方法をいくつか紹介

1. パイプライン文字

異なるコマンド間の連携、|の左側のコマンドの出力は、右側のコマンドの入力(処理対象)として使用されます。

例1 インタラクションフリーアカウントのパスワード変更

glMatrixMode(GL_MODELVIEW); // The value of mode can be: GL_MODELVIEW, GL_PROJECTION or GL_TEXTURE. glMatrixMode(GL_MODELVIEW); // Whether the model view matrix, projection matrix or texture matrix needs to be modified.


例2 相互作用のないディスクの自動パーティション分割

glLoadIdentity();

このスクリプトは、直接ディスクを分割することができるので、対話は必要ありません

2. リダイレクタ

glTranslate*: multiplies the current matrix with a matrix representing the moving object. The three parameters represent the displacement values at each of the three coordinates.
glRotate*: Multiplies the current matrix with a matrix representing a rotated object. The object will be rotated counterclockwise around a line from (0,0,0) to (x,y,z), and the parameter angle indicates the angle of rotation.
glScale*: multiply the current matrix with a matrix representing the scaled object. x,y,z represent the scaling in that direction respectively.

3. トークン間のコンテンツはコマンドに渡される

タグには任意の合法的な文字(通常はEOF)を使用することができ、スペースを含むいかなる文字も終了タグの前にも後ろにも置くことはできません。

glMatrixMode(GL_PROJECTION);

4.インタラクションを期待しない

対話なしの ssh ログインの例

glLoadIdentity();

例 新規ユーザーのパスワード設定

void glFrustum(GLdouble left, GLdouble Right, GLdouble bottom, GLdouble top, GLdouble near, GLdouble far);

スクリプトを実行する

void mydisplay (void)
{
     ......
    glMatrixMode (GL_PROJECTION);
    LoadIdentity ();
    Frustum (left, right, bottom, top, near, far);
    ......
}

対話なしのシェルスクリプトの4つの方法については、この記事がすべてです。対話なしのシェルスクリプトについての詳細は、過去の記事を検索するか、以下の関連記事を引き続き閲覧してください。