ネストされた二重引用符( ')の使用を回避する方法

ネストされた二重引用符( ')の使用を回避する方法

私は比較的zshを初めて使用するユーザーであり、(残念ながら)シェルについてはよくわかりません。それにもかかわらず、ハッシュ値を含む.bashrcにエイリアスを定義したいと思います。しかし、zshはそれが好きではないようです。私のコマンドはデフォルトでLaTeXファイルの文字列をsedに置き換え、LaTeXを実行してから置き換えをキャンセルします。

alias tex-build='
sed -i \
  's~\\newcommand{\\command}\[1\]{{here_is_the_command_stuff #1}}~\\newcommand{\\command}\[1\]{}~' \ 
  /path/to/mytexfile.tex && 
latex ... && 
sed -i \
  's~\\newcommand{\\command}\[1\]{}~\\newcommand{\\command}\[1\]{{here_is_the_command_stuff #1}}~' \
  /path/to/mytexfile.tex
'

LaTeXコマンドのハッシュで動作するようにこのエイリアスを取得する方法を見つけるのに役立つ人はいますか?よろしくお願いします!

ベストアンサー1

まず、zsh読まれません.bashrc。これはリソース制御ファイルbashなので、にzsh入れるか 。.zshrc.profile

第二に、どのような引用符も単に入れ子にすることはできません。 'a long 'nested' string'これはネストされた引用符付きの文字列ではなく、引用符付きの文字列、一番上の文字列a long 、および引用符nested付きの文字列の後に続くものです string

あなたがしたいことは関数である可能性が高いです。また、ファイルを変更し、変更されたフォームに対してワンタイム操作を実行してから再度変更するため、ファイルを変更せずに変更されたフォームをパイプラインに送信する方が簡単です。したがって、次のようになります。

tex-build() {
  sed \
    's~\\newcommand{\\command}\[1\]{{here_is_the_command_stuff #1}}~\\newcommand{\\command}\[1\]{}~' \ 
    /path/to/mytexfile.tex | latex ...
}

おすすめ記事