Bashスクリプトの二重引用符の問題

Bashスクリプトの二重引用符の問題

作業したいシェルスクリプトがあります。何とか出力が必要で、文字が正しくエスケープされていないことを知っています。

スクリプト:

#!/bin/bash
set -x
DATE=$(date +%Y-%m-%d-%M)
ELEMENTS="ele1,ele2,ele3"
TOPIC="dogs cats"
FILE="./$DATE.csv"
COMMAND="python /home/script.py"
$COMMAND $ELEMENTS "$TOPIC" | tee -a $FILE

これを実行すると端末の設定はどうなりますか?

++ date +%Y-%m-%d-%M
+ DATE=2016-02-01-21
+ ELEMENTS=a list of elements
+ TOPIC='dogs cats'
+ FILE=./2016-02-01-21.csv
+ COMMAND='python /home/script.py'
+ python /home/script.py ele1,ele2,ele3 'dogs cats'
+ tee -a ./2016-02-01-21.csv

私にとって必要なのは「犬と猫」と「犬と猫」です。 Pythonコマンドには、複数の単語で構成される文字列を表すために二重引用符が必要です。

これはRaspberry Piで走る千人です。

ベストアンサー1

変化

TOPIC="dogs cats"

到着

TOPIC='"dogs cats"'

"変数に含まれます。

おすすめ記事