機能 ショートカットキー
リファレンス(参考URL)一覧へ移動 R
記事URLをMarkDownとしてコピー Ctrl+M
前のコードタグへ移動 Ctrl+←
次のコードタグへ移動 Ctrl+→
ヘルプを表示・非表示 H
Tips
- ショートカットキーは記事上で有効です。ヘッダー/フッター付近では機能しないことがあります。
- コードタグ移動機能がうまく動かないときは、Shift+F5でページを更新してみてください。
- このウィンドウを閉じるには、Hキーをもう一度押してください

Bashで!(エクスクラメーション)をエスケープするには

プログラミング

画像を入れたらmarkdownを返してくれるbash関数を組みたかったのですが、エクスクラメーションの障壁にぶち当たった。

!自体は、普段はあまり使うことはないが、結構便利なコマンド。ctrl+rで履歴が見れるのは有名だが、例えばpwdを実行した後に!pまたは!pwと実行すると、pwdが実行される。こういうもの。だが、これのエスケープがなかなか曲者だった。

bash – Bashで! エクスクラメーションをエスケープするには(140827)|teratail

Q

プログラミング

Bashで! エクスクラメーションをエスケープするにはどうしたらよいでしょうか。

$ echo "\![$(echo "hgoe")]($(echo "hgoe"))"
\![hgoe](hgoe)

\ でエスケープしているのに、\まで出力されてしまいます………。

A

プログラミング
echo '!'"[$(echo "hgoe")]($(echo "hgoe"))"

感想

プログラミング

”と””で文字列の連結ができるんですね、bashは。知らなかったなぁ。普通できませんよね。トリッキーといいますか。
普通だったらecho "" + '' ;みたいにするかと思いますが、コマンドライン独特ですね。

この記事で欲しい情報が見つからなかった方へ

この記事の更新情報がある場合があります。
この記事は以下の記事とも関連性があると思われます。

BashでISO8601のタイムスタンプをdateで出力
Bash コマンドが存在するかパターンマッチで判断するには
WindowsにCicaフォントをインストールしてconemuのWSL bashで使えるようにする
WSL bashでpowershellに絶対パスのファイルを渡して開く方法
bash yes no yes以外なら終了する
PowershellでBashのhistoryコマンド
Bash sedでファイルのテキストを置換する


管理人の方針で、既存の記事の編集はせず、新しい情報や大きな既存情報の更新があった場合には、新しい記事として公開することになっています。
当記事で欲しい情報が見つからなかった・解決に至らなかった場合、これらのリンクがお役に立てるかも知れません。

どうやってこの関連記事を生成しているの?
この機能のPHPソースコード(2500行)

コメントを残す

Close Menu