Recently (February 25, 2020), when I updated according to the update request of Ubuntu, the following error came to occur when starting Fish shell. According to apt history, the fish shell has been updated.
The error that is occurring
~/.config/fish/functions/fish_prompt.fish (line 162): Expected a string, but instead found a '&'
git rev-parse --quiet --verify HEAD > /dev/null ^&1; or set empty 1
^
from sourcing file ~/.config/fish/functions/fish_prompt.fish
in command substitution
source: Error while reading file '/home/dev-user/.config/fish/functions/fish_prompt.fish'
Welcome to fish, the friendly interactive shell
Also, not only the error but also the prompt is displayed differently as follows.
dev-user@thinkpad /home/dev-user >
In my environment, it should be displayed as simple as ">" when I am in $ HOME.
Ubuntu 18.04.4 LTS fish-common:amd64 (3.0.2-1~bionic, 3.1.0-1~bionic) fish:amd64 (3.0.2-1~bionic, 3.1.0-1~bionic)
I have Ubuntu natively installed on my ThinkPad X1C 2017 as a desktop OS. The terminal software uses terminator 1.91.
Probably the cause ~/.config/fish/functions/fish_prompt.fish The 162nd line of is as follows.
git rev-parse --quiet --verify HEAD > /dev/null ^&1; or set empty 1
The "^ & 1" part is the problem. In fish, "^" seems to indicate an error output (reference), so I imagine that I made a mistake trying to synthesize the descriptor. And changed as follows.
git rev-parse --quiet --verify HEAD > /dev/null 2>&1; or set empty 1
For the time being, the error has disappeared.
This time, the error output was combined with the standard output, and the result was passed to null to hide all the outputs. When I changed the pattern so that the standard output is not erased, the git rev-parse ~~ command is executed every time the folder is moved, and in the directory under git management that has a difference from HEAD, it looks like a hash string. Is now displayed. Since it is strange that such a display appears at the prompt, I imagined that it was the intention of the implementer to hide it including the error output, but I took the above measures, but use it at my own risk. ..
Recommended Posts