私はちょうどLinuxターミナルの基本を学び始めて、ターミナルコマンドをシェルスクリプトに変換することを少し混乱させます。 Linux端末でスクリプトファイルを生成し、次のコードのシェルスクリプトバージョンを生成するにはどうすればよいですか?
curl -O https://people.sc.fsu.edu/~jburkardt/data/csv/cities.csv
head -n 12 cities.csv
答え1
テキストエディタを使用したスクリプトの作成
スクリプトはテキストファイルに保存されます。たとえば、gedit
次のようにテキストエディタで作成できますnano
。
$ nano yourscript.sh
一般ファイル名とファイル拡張子は特に重要です。スクリプトファイルで次のことを行う必要があります。インタプリタ実行可能ファイルを宣言して実行します(shebang)。。次にコードを追加します。にスクリプトを保存するには、+をnano
押してから入力し、をクリックします。CtrlXy
Enter
スクリプトを書く
スクリプトに引数を渡す場合は、コード内の数値としてその引数を参照できます(渡された最初の引数は、2番目の引数はなど$1
)$2
。$0
スクリプト自体の名前です。
基本原則として、変数の周囲には常に二重引用符を使用してください。。
コードを例にとると、スクリプトは次のようになります。
#! /usr/bin/bash
curl -O "$1"
head -n 12 cities.csv
後ろにスペースがあるかもしれません。#!
しかし、必ずしも必要ではありません。ほとんどの場合、$0
端末で変数を確認できます。シェル実行可能ファイルは端末のコマンドを解釈します。:
$ type $0
bash is /usr/bin/bash
コードの改善
ファイルの最初の12行をダウンロードするだけでよいと仮定すると、次のようになります。ダウンロードしたファイルの保存をスキップディスク上に次のコマンドでパイプします。:
#! /usr/bin/bash
curl -s "$1" | head -n 12
ボーナスとしてスクリプトからファイル名を省略できます。
スクリプトの実行
スクリプトをとして保存したとし、yourscript.sh
最初に実行する権限を追加します。
$ chmod +x yourscript.sh
その後、実行するにはパスを指定してパラメータを指定する必要があります。現在のディレクトリにある場合は、前に以下を追加してパスを指定できます./
。
$ ./yourscript.sh 'https://people.sc.fsu.edu/~jburkardt/data/csv/cities.csv'
答え2
プロンプトに1つずつ入力するすべてのコマンドは、単にスクリプトファイルに入れて一度だけ実行できます。
唯一の要件は、ファイルの先頭にある必要があるソルバーの削減です。
#!/bin/sh
#!/bin/bash
bash()やzsh(#!/bin/zsh
)などの他のスクリプトをスクリプトできます。実行してスクリプトを実行可能にします
chmod +x scriptFile.sh
(スクリプトファイルであることを示すsh拡張子を使用することをお勧めします)。以下からスクリプトを実行してください。
./scriptFile.sh
scriptFile.sh
オプション:PATH変数にディレクトリパスを追加すると、他のシェルコマンドと同様に呼び出して、すべてのディレクトリでスクリプトを実行できますls
。cat