2017-08-10 3 views
1

引用符でファイル名を無視します変数は、それは次のようになります。 大部分が動作しますが、私はエッジケースを発見した"first_directive ; second_directive '$i'"が、私はそうのようなマルチパートコマンドを二重引用符を必要とする単純なbashスクリプトを実行し

there_are_12''_in_a_footで、それは''を無視し、ちょうどここでthere_are_12_in_a_foot

探しdataフォルダの内容であるとして、ファイル名は、2つの単一引用符が含まれています。私はすべての組み合わせを試してみた

$ ls /data/ 
what_do_they_call_a_quarter_pounder 
they_use_the_metric_system 
there_are_12''_in_a_foot 

私が考えることができる引用符、そしてもちろん検索していますが、私は何かを見つけることができません。

+0

'variable'の値には引用符が含まれていますか?変数名を変更してコードを分かりやすくしてください – Inian

+0

あなたがしたことは正しいと思いますが、ここで変更するものは何もないと思います。問題は、あなたが呼び出す 'mycommand'スクリプトにあります。具体的な内容をご記入ください。 – Anubis

答えて

1

'${variable//\'/\'\\\'\'}' 

の代わり

このような単一引用符エスケープします
'$variable' 

:それはDEPEので

'there_are_12'\'''\''_in_a_foot' 

をもちろん、my_commandにnds。

+0

それは魅力を働いて – jakethedog

+0

それはあなたのために動作することを喜んで。 – hek2mgl

0

あなたはバックスラッシュで'を脱出することができるはずです。

あなたが使用すること
there_are_12\'\'_in_a_foot 
+0

そうだけど、どうやってbashループでやるの? – jakethedog

+0

いや..少し難しいかもしれない。しかし、あなたは今すぐ実際の解決策を持っているようです:) – gaderian

関連する問題