
unixの初心者です、以下のecho -eの¥がどう機能するか?
混乱して困っています。
3と4が同じになるのに、5と6が異なるのはなぜなんでしょう?
そもそも¥て何をするものなんでしょうか?-eと¥がくっつくと
やたら難しくなって困っています。
1, echo -e "hello\tthere" → hello there
2, echo -e hello\tthere hellotthere
3, echo -e "hello\\tthere" hello there
4, echo -e hello\\tthere hello there
5, echo -e "hello\\\tthere" hello\there
6, echo -e hello\\\tthere hello there
よろしくお教えください。

No.2ベストアンサー
- 回答日時:
「よろしくお教えください。
」という件について、個別に回答していませんでしたので、追記しました。なお、下記の件はすべて 回答No.1 の参照サイトに書いてあります。
よく読んでみてください。
1. helloとthereを水平タブで区切って表示したい。
この記述例だけが正解です。
2. スクリプト記述ミスなので論外です。
シェルプログラムは無効なバックスラッシュを無視したので、保証できない結果が表示されている。
3. スクリプト記述ミスをシェルプログラムが救済した。
最初のバックスラッシュを無効として、それ以外は救済した。
4. (3)と同じように、スクリプト記述ミスをシェルプログラムが救済した。
5. 結果は hello\tthere と合計12文字になるはずなので、質問者はタイプミス(11文字)していると思われる。
シェルプログラムはスクリプト記述通りに正しく判定し、バックスラッシュを1文字表示した。
つまり、バックスラッシュを3つ続けて記述しているので、「両側のバックスラッシュで囲んだメタ文字を表示しなさい」という指定になり、結果表示は2番目のバックスラッシュが1文字だけ表示される。
後ろに続いている文字は、単なる文字列( tthere という6文字の文字列)として表示されている。
ーーー以上です。
No.4
- 回答日時:
シェルの構文解析時に解釈される\と、echoコマンド処理時に解釈される\があるのに注意ですかね。
\自体は同じですが、構文解析時に消費(?)されてコマンド処理に渡らないものと、構文解析を通り抜けてコマンドに渡るもの。bashの構文解析時の\文字処理は以下の通りです。
(1) " " の中
\\ は \ に、\" は " に、それ以外の文字 c について \c は \c のまま。
(2) ' ' の中
\ はそのまま。
(3) " " や ' ' の外
\\ は \ に、それ以外の文字 c について \c は c に。c が空白文字でもパラメータ区切りにはならない。あと、行末の \ は行の連結に。
以上を適用すると、
>1, echo -e "hello\tthere" → hello there
echo に渡るのは hello\tthere で、\t をecho -eがタブにする
>2, echo -e hello\tthere hellotthere
echo に渡るのは hellotthere で、echo -e はそのまま出す
>3, echo -e "hello\\tthere" hello there
echo に渡るのは hello\tthere で、\t をecho -eがタブにする
>4, echo -e hello\\tthere hello there
echo に渡るのは、hello\tthere で、\t をecho -eがタブにする
>5, echo -e "hello\\\tthere" hello\there
echo に渡るのは、hello\\tthere で、\\ をecho -eが\にする
>6, echo -e hello\\\tthere hello there
echo に渡るのは、hello\tthere で、\t をecho -eがタブにする
動作が書いた人の意図通りであるかどうかをさておくと、すべて正しい記述です。

No.3
- 回答日時:
6. について書き忘れていました。
6. スクリプト記述ミスをシェルプログラムが救済した。
-e 指定があるのでシェルプログラムはエスケープシーケンスを優先した。
(最初の2文字のバックスラッシュは無効として、エスケープシーケンスを採用した)
5. と 6. の違いについては、つぎのようになります。
5. は正しいスクリプト記述ー>正しく処理実行ー>正しい結果表示(指示通りの結果表示)。
6. は正しくないスクリプト記述ー>誤りを救済して実行ー>救済結果を表示。
---以上です。

No.1
- 回答日時:
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Ruby プログラミング 3 2023/06/09 14:30
- 英語 "Hello" の語源は何でしょうか?中国語の「好」Hǎo ではないでしょうか? 2 2022/04/01 10:23
- 英語 和訳お願いします 3 2022/10/09 07:13
- CM ANAのCMのナレーションがどなたなのか知りたいです。 1 2023/01/18 16:54
- その他(学校・勉強) Japanese schools tests 1 2022/08/19 14:41
- 中学校受験 Japanese schools 1 2022/08/22 15:53
- Java マイクラでPythonのプログラミングができません 3 2023/05/28 07:15
- JavaScript ifreamをリロードしたい 1 2022/05/03 16:15
- 英語 Hello and please don't speak so please てどういう意味なんです 2 2022/06/07 22:47
- その他(言語学・言語) Hello Talkをしていて 「I am 17 how old r u?」ときたのですが どういう 1 2022/12/04 16:08
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
今、見られている記事はコレ!
-
弁護士が語る「合法と違法を分けるオンラインカジノのシンプルな線引き」
「お金を賭けたら違法です」ーーこう答えたのは富士見坂法律事務所の井上義之弁護士。オンラインカジノが違法となるかどうかの基準は、このように非常にシンプルである。しかし2025年にはいって、違法賭博事件が相次...
-
釣りと密漁の違いは?知らなかったでは済まされない?事前にできることは?
知らなかったでは済まされないのが法律の世界であるが、全てを知ってから何かをするには少々手間がかかるし、最悪始めることすらできずに終わってしまうこともあり得る。教えてgooでも「釣りと密漁の境目はどこです...
-
カスハラとクレームの違いは?カスハラの法的責任は?企業がとるべき対応は?
東京都が、客からの迷惑行為などを称した「カスタマーハラスメント」、いわゆる「カスハラ」の防止を目的とした条例を、全国で初めて成立させた。条例に罰則はなく、2025年4月1日から施行される。 この動きは自治体...
-
なぜ批判コメントをするの?その心理と向き合い方をカウンセラーにきいた!
今や生活に必要不可欠となったインターネット。手軽に情報を得られるだけでなく、ネットを介したコミュニケーションも一般的となった。それと同時に顕在化しているのが、他者に対する辛らつな意見だ。ネットニュース...
-
大麻の使用罪がなかった理由や法改正での変更点、他国との違いを弁護士が解説
ドイツで2024年4月に大麻が合法化され、その2ヶ月後にサッカーEURO2024が行われた。その際、ドイツ警察は大会運営における治安維持の一つの方針として「アルコールを飲んでいるグループと、大麻を吸っているグループ...
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
apache停止してたら再起動させ...
-
シェル 会話形式でエンターキ...
-
Linuxのファイル禁止文字
-
シェル内で自動ユーザ変更
-
BシェルとBashの違い
-
『存在するかどうか分からない...
-
Dirコマンドでフォルダ内ファイ...
-
SONYの音楽ソフト「x-アプリ」...
-
TOPコマンドで表示するCPU使用...
-
エクセルの表にヘンな枠が・・・
-
batである文字列内に特定の文字...
-
Linux環境 grepで改行コード(CR...
-
大手町駅。それはホームから非...
-
grepでの抽出箇所のみ置換して...
-
スクリプトのエラー「unexpecte...
-
ラズパイで『’test.service’をs...
-
shutdownコマンドをキャンセル...
-
SCコマンドでアクセス拒否
-
文化祭の書類で不備がありました
-
IPアドレスだとPingが通るのに...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
シェル 会話形式でエンターキ...
-
export と set は違うの?
-
.cshrc ファイルについて
-
ターミナルが全く入力できない
-
Cシェル内でBシェルの様な関数...
-
ubuntuの端末の左にカレントデ...
-
シェルとシェルの間で環境変数...
-
シェルスクリプトのbashとperl...
-
Cシェルでのファイルからの入...
-
シェルスクリプトに関する問題...
-
違いについて
-
コンソールでの上下左右矢印ボ...
-
『存在するかどうか分からない...
-
31日前の日付はいつ?
-
BシェルとBashの違い
-
mac os x10.6.4のターミナルでp...
-
シェル(ksh)で変数にある文字列...
-
Tabキー補完や↑キーのヒストリ...
-
tcshなのにスクリプト構文中のs...
-
msys(cygwin)で、シェルスクリ...
おすすめ情報