「コマンド置換(バッククォートと$())」の編集履歴(バックアップ)一覧はこちら

コマンド置換(バッククォートと$())」(2011/01/17 (月) 00:21:33) の最新版変更点

追加された行は緑色になります。

削除された行は赤色になります。

bashでは、あるコマンドの実行に先立ち、別のコマンドを実行するには、コマンド置換という機能を使う。 コマンド置換は、"`"(バッククォート)で囲むか、"$("と")"で囲むことで可能である。 たとえば、ファイル名に現在日付をもつファイルをtouchコマンドで作成し、それを削除するには以下のようにする。 例 $ touch test`date '+%Y%m%d'` <--バッククォート部分が先に実行される。 $ ls -l test* -rw-r--r-- 1 tomonari None 0 2011-01-17 00:07 test20110117 $ rm -i test$(date '+%Y%m%d')   <--$()部分が先に実行される。 rm: remove regular empty file `test20110117'? y "`"(バッククォート)と"$()"の違いは、後者がコマンドのネストができることくらい。 バックォートも内部のバックコートを"\"(バックスラッシュ)でエスケープすれば、ひとつだけネストできるが、2つ以上はできない。 例 $ echo "abc $(echo def $(echo ghi)) jkl" abc def ghi jkl $ echo "abc `echo def \`echo ghi\`` jkl" abc def ghi jkl         <---ひとつだけのネストはOK $ echo "abc $(echo def $(echo ghi $(echo AAA))) jkl" abc def ghi AAA jkl       <---ふたつのネストもOK。 $ echo "abc `echo def \`echo ghi \`echo AAA\`\`` jkl" abc def ghiecho AAA jkl <---4つ目のechoが表示されているのでNG。 ---- #comment() ----

表示オプション

横に並べて表示:
変化行の前後のみ表示: