Bash

eval 命令在 WSL Ubuntu 中給出錯誤

  • October 20, 2021

我正在嘗試使用本教程在 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沒有太多經驗。

您正在嘗試fishbash. 這是兩個不同的 shell,每個都有自己的語法,你不能盲目地將命令從一個 shell 複製到另一個 shell,並希望它們能正常工作。

eval內置的顯然fish可以理解你給它的帶括號的子shell,但這在bash. 相反,使用引號:

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

現在我不知道這是否適用於 bash,教程中可能還有其他特定於魚的規則。但這至少會執行您嘗試執行的命令。

引用自:https://unix.stackexchange.com/questions/674007