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。这是两个不同的 shell,每个都有自己的语法,您不能只是盲目地将命令从一个 shell 复制到另一个 shell 并希望它们能够工作。

eval内置函数显然fish可以理解您给它的带括号的子 shell,但这在bash.相反,使用引号:

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

现在我不知道这是否适用于 bash,教程中可能还有其他特定于鱼的规则。但这至少会运行您尝试运行的命令。

相关内容