Пробую рыбий панцирь, идущий от zsh и bash. Мне очень не хватает позиционного параметра $_
, и я пытаюсь имитировать его с помощью функции.
Fish содержит свою историю команд в массиве $history
, где $history[1]
- предыдущая строка в истории, $history[2]
- предыдущая и так далее.
Я пытаюсь оценить эту переменную и извлечь последнее слово следующим образом
ls -al
echo $history[1] | awk '{print $NF}' // Prints -al
Я пробовал поместить его в такую функцию
function \$_ --description 'Fish-patch for the $_ positional parameter'
echo $history[1] | awk '{print $NF}'
end
Но это не совсем так, как ожидалось. Вызов $_
сам по себе работает должным образом;
ls -al
$_
Он печатает -al
. Но если $_
передается в качестве параметра функции;
ls -al
echo $_
Он печатает echo
. Я подозреваю, что это как-то связано с оценкой $_
-функции в подоболочке или чем-то в этом роде, я действительно не знаю.
Что здесь не так? Почему echo $_
не работает должным образом?