シェルにおけるシングルクォート、ダブルクォート、バッククォートで囲った場合の挙動の違い

2016/06/30

Linux等のシェルスクリプトにおいて、変数を各クォートで囲った場合、それぞれ異なる処理となります。

記号名称動作
シングルクォート囲った中身を文字列として出力
ダブルクォート囲った変数の中身を文字列として出力
`バッククォート
(アンサングラーブ)
囲った変数の中身をコマンドとして処理し、その結果を出力

シングルクォートは Shift + 7、バッククォートは Shift + @ で入力できます。それぞれ似ていますが、よく見ると違いがわかります。既に出来合いのソースコードを読む際は、特に注意が必要ですね。

具体的な動きは以下の通りです。
変数「A」に文字列「ls」を設定した場合の動きを例に挙げます。

[TESTSRV1-root-S/5] ls
bin  src  hello.c  hello.o  makefile
[TESTSRV1-root-S/5] A="ls"
[TESTSRV1-root-S/5] echo $A
ls
[TESTSRV1-root-S/5] echo '$A'
$A
[TESTSRV1-root-S/5] echo "$A"
ls
[TESTSRV1-root-S/5] echo `$A`  
bin src hello.c hello.o makefile
[TESTSRV1-root-S/5]

何も囲まなかった場合と、ダブルクォートで囲った場合は、同じ動きとなります。(処理に応じて囲む必要があります。)シングルクォートで囲った場合は「$A」そのものの文字列として取り扱われます。そしてバッククォートで囲った場合は、変数値「ls」をコマンドとして発行し、その処理結果がアウトプットとなります。

もしバッククォートで囲って、その変数値がコマンドでない場合、シェルのエラーとなってしまうので注意してください。

こちらの記事もいかがですか?

minecraft-kuda-shaders01
2016/12/03

Minecraft 低スペックパソコンで使える影 MOD の代表格 KUDA SHADERS の導入方法

odaiba-gundam-last-day01
2016/12/02

お台場のガンダムいつまで見られるか?!ダイバーシティーからの撤去が決まる

new-year-2017
2016/12/01

一人用おせち料理のすすめ【2017】人気店のおせちが通販で手に入ります

jayfi-touch-h1-ja-22-01
2016/11/30

イヤホンからの乗り換えにおすすめ Jayfi Touch H1 はスマホの通話機能を持つ低音重視のワイヤレス Bluetooth ヘッドホン【レビュー】

android-smartphone-case01
2016/11/30

Android 用スマホケースはどこで売っている?店に行っても売ってない場合どうすれば良いか

remove-crc-sha-from-context-menu01
2016/11/29

ファイルを右クリックすると表示される CRC SHA を消す方法

rakusuru01
2016/11/29

ラクスルで初めてのポスター発注!時間は掛かるが料金は安い!

file-archiver-7-zip01
2016/11/29

ZIP より圧縮率の高いアーカイバー 7-Zip を今更ながら紹介する

install-minecraft-mod-optifine01
2016/11/29

Minecraft 軽量化 MOD OptiFine の導入方法 【1.11対応済み】

minecraft02
2016/11/28

Minecraft のビデオ設定を変更して軽くすれば低スペックパソコンでも十分に遊べる

→もっと見る

Name :
気力/体力勝負なシステム業界で揉まれています。自分が自分らしくあるために、大事なリセット、スタートします。

プロフィール詳細 Twitter @_NJ69_
Facebook ページ nj-clucker.com シェア
このブログが役に立ったら
「いいね!」お願いします
PAGE TOP ↑