Bashスクリプトの一重引用符

Bashスクリプトの一重引用符

私のコマンド構文は次のとおりです。

command 'variable'

変数は一重引用符で渡す必要があります。

入力ファイルで for ループを使用する場合

variable1
variable2
variable3

for i in `cat $1`
do
       command '$i'
done

shell>file.sh input

bashは入力を変数として受け入れないので、一重引用符は不完全です。変数をそのままにするために単一引用符を使用する方法を提案します。

ベストアンサー1

一重引用符で囲まれた内容は、入力したとおりに正確に渡されます。したがって、command '$i'2 文字の合計で構成される文字列がコマンドに渡されます。$i

使用された変数の値を取得するには、二重引用符を使用する必要があります。

for i in `cat $1`
do
       command "$i"
done

あるいは、コード内のファイルの1行に1つの単語が必要なので、ループ全体を次の行に置き換えます。

xargs -n1 -r command <"$1"

おすすめ記事