実行時に標準出力に「I should learn」という単語を印刷するスクリプトの内容をどのように入力しますか?
最善の試みは次のとおりです。
#!/bin/bash
$ echo "I should have studied" | grep studied
シェルが私のコマンドを実行するには最初のステートメントが必要であることを知っています。 2番目はechoを使用して印刷し、そのコマンドのパイプ演算子を別のコマンドの入力にリダイレクトします。また、「grep」を使用して、そのリストから文字列ディレクトリを含む行を見つけて、その行を標準出力に送信します。私は進化していますか?
ベストアンサー1
シェルに直接入力すると、次のことができます。
echo "I should have studied"
スクリプトを生成するには、実行したいコマンドを(テキスト)ファイルに入れてそのファイルを使用するだけです。
お好みのUNIX / Linuxエディタを使用してファイルを生成しますstudy
。必要な名前(.sh
または必要に応じてサフィックスを持つ名前)を使用できます。この2行を追加してください
#!/bin/bash
echo "I should have studied"
最初の行はシェルスクリプトであることを宣言しますbash
。コマンド自体grep
でecho
十分であるため、出力をフィルタリングする必要はありません。 (また、先頭を入力していないことに注意してください$
。一部の人々は、コマンドを入力していることを示すためにStackExchangeや他のサイトでこれを使用しますが、個人的に混乱していると思います)。使用できます。他のプログラムのようにシステムを実行する
chmod +x study
そしてそれを実行
./study
先行ビットは、シェルに./
現在のディレクトリでコマンドを検索するよう指示します。スクリプトがシステムディレクトリまたは検索パス($PATH
)にある場合は、study
他のコマンドと同様に、単に名前を入力して実行できます。
構文チェックに以下を使用することを恐れないでください。https://shellcheck.net/スクリプト開発が始まるとき。