文字列を一時的に保存し、後でコマンドで使用するbashスクリプトがあります。問題は、文字列に!
英数字以外の文字が含まれることが多いことです。その後、bashはその文字を文字通り処理し、bashが通常その文字で実行する操作を実行します。
したがって、例では、!
履歴の交換を実行してコマンドを実行しようとします。この特別な場合に起動スクリプトを使用できることを知っていますが、#!/bin/bash +H
可能なすべての文字を実際に説明することはできません。それでは、bashに変数の値を文字通り使用させるにはどうすればよいですか?
たとえば、
var=u134y123!3q54wtgf..314/sa|asd
/path/to/command -option $var
上記の例では、bashが私が履歴交換またはI / Oリダイレクトを|
実行していると思わないようにするにはどうすればよいですか?
答え1
答え2
私があなたを正しく理解しているかどうかはわかりません。私が見るには
var="u134y123ls -laq54wtgf..314/sa|asd"
echo "$var"
それはすべてです。出力:
u134y123ls -laq54wtgf..314/sa|asd