エントリーの編集
エントリーの編集は全ユーザーに共通の機能です。
必ずガイドラインを一読の上ご利用ください。
シェルスクリプトで空白をクォートしている引数とコマンドを変数に入れて実行する場合はevalを使う必要がある - うまいぼうぶろぐ
記事へのコメント0件
- 注目コメント
- 新着コメント
このエントリーにコメントしてみましょう。
注目コメント算出アルゴリズムの一部にLINEヤフー株式会社の「建設的コメント順位付けモデルAPI」を使用しています
- バナー広告なし
- ミュート機能あり
- ダークモード搭載
関連記事
シェルスクリプトで空白をクォートしている引数とコマンドを変数に入れて実行する場合はevalを使う必要がある - うまいぼうぶろぐ
何かタイトルが長くてわかりにくいですね。 普通に変数に入れているだけだと、クォートしていても空白区... 何かタイトルが長くてわかりにくいですね。 普通に変数に入れているだけだと、クォートしていても空白区切りで別々の引数として認識される。 foo.sh 【grep "foo bar"】を変数に入れて、それをそのまま実行する。 $ cat foo.sh #!/bin/bash grep='grep "foo bar"' echo $grep $grep$ ./foo.sh grep "foo bar" grep: bar": そのようなファイルやディレクトリはありません変数をechoで出力している内容を見ている限り、問題なさそうだが。。。 bash -x でdebugしてみる (sh -x だと同じようにgrep "foo bar" と見えるのでダメ) $ bash -x foo.sh + grep='grep "foo bar"' + echo grep '"foo' 'bar"' grep