Re: 問題ID:22156について

この質問の投稿一覧へ

なし Re: 問題ID:22156について

msg# 1.3.1
depth:
2
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2019-6-19 9:48
arashi1977  長老 居住地: 広島  投稿数: 1715
引用:
「`」で囲まれた文字列は変数に格納されたコマンドも展開するが、「"」で囲まれた文字列は変数の展開のみを行い、変数に格納されたコマンドは展開しない
もーちょっと厳密に言うと、バッククオート(`)で囲まれた範囲は「変数かどうかによらず、コマンドとして実行する」ものです。例えば以下のようなことです。
$ echo `cat /etc/redhat-release`
CentOS Linux release 7.6.1810 (Core)

それの何が嬉しいの?ってこともあると思いますが、例えば
# ls -l
合計 0 ←今このディレクトリにはなにもない
# ls -1 | wc -l
0 ←lsコマンドで出力される行数は0
# touch testfile-`ls -1 | wc -l`  ←上記のコマンドの結果を利用して
# ls -l
合計 0
-rw-r--r--. 1 root root 0  6月 19 09:43 testfile-0 ←テストファイルに通番(0)を付与して作成
# ls -1 | wc -l
1 ←1ファイルあるので、lsコマンドの出力行数は1
# touch testfile-`ls -1 | wc -l` ←連続して同じコマンドを実行
# ls -l
合計 0
-rw-r--r--. 1 root root 0  6月 19 09:43 testfile-0
-rw-r--r--. 1 root root 0  6月 19 09:43 testfile-1 ←ファイルの通番がファイル数に応じて増加している
みたいな感じで、「コマンドの実行結果を文字列としてシェルに渡す」事ができるので、コマンドライン作業に柔軟性が出てくるんです。

投稿ツリー

  >フォーラム検索へ


Copyright (c) 2020 Ping-t All rights reserved.