GNU/Linux >> Linux の 問題 >  >> Linux

bash スクリプトを作成する方法、または vi を開いてドキュメントを編集する方法を自動化するには?

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 で行番号を渡さないことです まだ行がないため、コマンドを挿入します。 w にファイル名を渡します 新しいファイルである write コマンド。

sed も使用できますが、そのようなタスクには ed が見つかります より使いやすく (何が起こっているかを読みやすく) します。


Linux
  1. Bashでは、いつエイリアスを作成し、いつスクリプトを作成し、いつ関数を作成するのですか?

  2. 現在のBashセッションで開いているファイル記述子(およびそれらが参照するファイル)を一覧表示するにはどうすればよいですか?

  3. 実行する前にシェルスクリプト全体を読む方法は?

  1. Bash +セカンダリスクリプトとメインスクリプトの両方を終了する方法は?

  2. Bashスクリプトでユーザーアカウントとパスワードを自動的に追加する方法は?

  3. Cでシリアルポートを開き、読み書きする方法は?

  1. Bashでwatchコマンドとjobsコマンドを一緒に使用するにはどうすればよいですか?

  2. プロセスの pid を取得し、シェル スクリプトで kill -9 を呼び出す方法は?

  3. 現在の bash セッションで開いているファイル記述子 (およびそれらが参照するファイル) を一覧表示する方法