bashが変数の値を文字通り使用するように強制する方法は?

bashが変数の値を文字通り使用するように強制する方法は?

文字列を一時的に保存し、後でコマンドで使用するbashスクリプトがあります。問題は、文字列に!英数字以外の文字が含まれることが多いことです。その後、bashはその文字を文字通り処理し、bashが通常その文字で実行する操作を実行します。

したがって、例では、!履歴の交換を実行してコマンドを実行しようとします。この特別な場合に起動スクリプトを使用できることを知っていますが、#!/bin/bash +H可能なすべての文字を実際に説明することはできません。それでは、bashに変数の値を文字通り使用させるにはどうすればよいですか?

たとえば、

var=u134y123!3q54wtgf..314/sa|asd
/path/to/command -option $var

上記の例では、bashが私が履歴交換またはI / Oリダイレクトを|実行していると思わないようにするにはどうすればよいですか?

ベストアンサー1

それはすべて引用符についてです。アポストロフィ !文字通り保存します|二重引用符 $var

var='u134y123!3q54wtgf..314/sa|asd'
/path/to/command -option "$var"

おすすめ記事