web-dev-qa-db-ja.com

この構文はどういう意味ですか?

私はターミナルに慣れていないので、使い方を学ぼうとしています。

これらの行は何をしますか?そして、彼らはどのように機能しますか?

echo -n "Today's date is: "
date +"%A, %B %-d, %Y"
16
Unknown person
$ type echo
echo is a Shell builtin

つまり、echoコマンドはbashプログラム自体の一部です(bashを使用すると仮定)

-nはオプションなので、それが何をするのか見てみましょう

$ help echo
Write arguments to the standard output
...
-n  do not append a newline

したがって、次の行を実行すると:

zanna@monster:~$ echo -n "Today's date is: "
Today's date is: zanna@monster:~$ 

うーん、見栄えはよくありません。印刷されたテキストの後に改行がないためです。これに戻ります。

$ type date
date is /bin/date

ああ、dateコマンドは別のプログラムです。それは何をするためのものか?

$ man date
Display the current time in the given FORMAT, or set the system date.

dateコマンドの後の文字は書式オプションです(+を前に付ける必要があります)-日付のさまざまな部分が指定されます(たとえば、%Aはその日のフルネームです)週-オプションの完全なリストについては、man dateの残りを参照してください)

$ date +"%A, %B %-d, %Y"
Tuesday, February 7, 2017

したがって、コマンドをスクリプトにまとめてからスクリプトを実行すると、次のようになります

Today's date is: Tuesday, February 7, 2017

いいね!端末で同じ効果が必要な場合は、改行の代わりにセミコロンを使用して2つのコマンドを区切ることができます。

$ echo -n "Today's date is: " ; date +"%A, %B %-d, %Y"
Today's date is: Tuesday, February 7, 2017
75
Zanna

manコマンドのマニュアルページから開始する必要があります。 man <command>と入力するだけで、<command>に関する情報を取得できます。 manでのナビゲーションはあまり直感的ではありませんが、多くのガイドがあります。たとえば、 https://wiki.gentoo.org/wiki/Man_page/Navigate#Navigating_and_searching_man_pages です。

man echoおよびman dateの関連部分:

エコー

echo [SHORT-OPTION]... [STRING]...

Echo the STRING(s) to standard output.

-n     do not output the trailing newline

そのため、文字列を出力し、その後は新しい行に移動しません(これはデフォルトの動作です)。そのため、次のコマンドの出力はエコーされた文字列の右側に出力されます。

日付

date [OPTION]... [+FORMAT]

FORMAT controls the output.  Interpreted sequences are:

%A     locale's full weekday name (e.g., Sunday)

%B     locale's full month name (e.g., January)

%d     day of month (e.g., 01)

%Y     year

By default, date pads numeric fields with zeroes.  The following optional flags may follow '%':

-      (hyphen) do not pad the field

明確であることを願っています。そうでない場合はお気軽にお問い合わせください。

10
Melebius
echo -n "Today's date is: "

印刷されます:今日の日付は:

date +"%A, %B %-d, %Y"

次のように出力されます:2017年2月7日火曜日

アドバイス

  1. manまたは--helpコマンドを使用して、他のコマンドの詳細を確認します。
    eg:

    man echo
    echo --help
    
  2. これらのチャレンジを試してみてください チャレンジは、ターミナルで物事を行うことを学ぶのに役立ちます。

4
Avinash