eval コマンドが WSL Ubuntu でエラーを発生させます。

eval コマンドが WSL Ubuntu でエラーを発生させます。

wslttyでソーラーカラースキームを使用しようとしています。これ次のコマンドをコピーする必要がある部分を除いて、チュートリアルと他のすべてが機能します。

source ~/.mintty-colors-solarized/mintty-solarized-light.sh
eval (dircolors -c ~/.dir_colors | sed 's/>&\/dev\/null$//'

私はそれを使用しないので、fishコマンドをファイルに貼り付けましたが、.bashrc次のエラーが発生しました。

-bash: .bashrc: line 119: syntax error near unexpected token 'dircolors'
-bash: .bashrc: line 119: 'eval (dircolors -c ~/.dir_colors | sed 's/>&\/dev\/null$//')'

どうすればいいのかわかりません。夏時間のカラースキームが提供されていますが、ls出力などのテキストコンテンツは線画スキームには表示されないため、このコマンドはこれに関連していると確信しています。誰でも私を助けることができますか?私はbashの経験はあまりありません。

答え1

fishの構文を使用しようとしていますbash。これらはそれぞれ独自の構文を持つ2つの異なるシェルです。あるシェルから別のシェルに盲目的にコマンドをコピーして動作させることはできません。

eval組み込み関数は、fishユーザーが指定した括弧内のサブシェルを明確に理解していますが、機能しませんbash。代わりに引用符を使用してください。

eval "dircolors -c ~/.dir_colors | sed 's/>&\/dev\/null$//'"

今これがbashに適用されるかどうかはわかりません。チュートリアルには他の魚に関する規則があるかもしれません。ただし、これは少なくとも実行したいコマンドを実行します。

関連情報