質問: すみません。説明不足でした。 まず、コマンドを分割すると、 * cd ~/プロジェクトディレクトリ (ディレクトリ移動) * docker-compose down(dockerの起動停止) * docker-compose up -d (dockerを立ち上げる) * docker-compose exec mysql /bin/bash -c "apt-get update && apt-get install -y locales && locale-gen ja_JP.UTF-8 && 'echo export LANG=ja_JP.UTF-8' >> ~/.bashrc(dockkerのmysqlのコンテナ内に入って、updateし、日本語を入力できるようにするためにlocalesをインストールしてから言語を設定しています)(この辺もダブルクォーテーションの中にシングルを入れればいいのか、シングルの中にダブルをいれればいいのかわからず曖昧) * clear です。 それを全て&&で結合しているのですが、tmuxのsend-keysというのを使って、コマンドをシェルに送信するという作業をしています。
回答: 本来何がしたいのか不明なので、アドバイスしようがないです。 「ここからここまでをこのコマンドに与えたい」などと説明的に書いてください。 基本的には、 ・`'`の中では`\`によるエスケープが効かない ・`"`の中では`"`や`$`や`\`は`\`でエスケープする。`'`はそのまま書ける ・場合によっては`eval`が必要 です。 補足を受けての追記 ========= 単に、一重引用符の中の二重引用符ですね。 `echo export~~`の引数に引用符は不要です。 ``` send-keys 'cd ~/プロジェクトディレクトリ && docker-compose down && docker-compose up -d && docker-compose exec mysql /bin/bash -c "apt-get update && apt-get install -y locales && locale-gen ja_JP.UTF-8 && echo export LANG=ja_JP.UTF-8 >> ~/.bashrc " && clear' C-m ```