Bashスクリプトを書くか、自動的にviを開き、ドキュメントを編集するには?

Bashスクリプトを書くか、自動的にviを開き、ドキュメントを編集するには?

基本的に、このプロセスを自動化するためにbashスクリプトを作成したいと思います。

vi filename.sh

(viを使って「filename.sh」を開きます。)

次の2行を追加します。

export GRADLE_HOME=/opt/gradle/gradle-5.2.1
export PATH=${GRADLE_HOME}/bin:${PATH}

そしてこの変更を保存してください

:wq!

デフォルトでは、自動化のためにそれをJenkinsファイルに追加したいと思います。

ベストアンサー1

vi定義によると、これはビジュアルエディタです。

この場合、別の方法を使用することをお勧めします。

この行だけを追加するには:

cat >> filename.sh <<'EOF'
export GRADLE_HOME=/opt/gradle/gradle-5.2.1
export PATH=${GRADLE_HOME}/bin:${PATH}
EOF

ファイルがまだ存在しない場合でも機能します。

最初にこれらの行を追加するには、ed行ベースのエディタを使用できます。

ed filename.sh <<'EOF'
1i
export GRADLE_HOME=/opt/gradle/gradle-5.2.1
export PATH=${GRADLE_HOME}/bin:${PATH}
.
w
q
EOF

これはed、行が行1に挿入されることを示します。.ラインの単一点は入力の終わりを表しているため、挿入はここで停止します。最後にファイルが記録され(w)、編集セッションが終了します(q)。

ファイルがまだ存在していなくてもed(この場合は上記の例を使用していますcat)、次のものを使用できます。

ed filename.sh <<'EOF'
i
export GRADLE_HOME=/opt/gradle/gradle-5.2.1
export PATH=${GRADLE_HOME}/bin:${PATH}
.
w filename.sh
q
EOF

i主な違いは、まだ行がないため、insertコマンドで行番号を渡す必要がないことです。次に、w新しいファイルwriteコマンドにファイル名を渡します。

sedうまく機能しますが、このタイプの操作ではed使いやすく、進行状況を読むのが簡単です。

おすすめ記事