Se a saída de
echo 1l|ed test.rb
termina com \r$
você tem um <carriage return>
na frente do <line-feed>
As linhas no unix são terminadas por feed de linha, por isso env
procura o ' winruby\r
' e não ' winruby
'.
edite seu script no ambiente unix com vi
, ed
ou nano
e remova o '\ r' do final da linha.
Editar:
Eu posso criar o mesmo resultado que você, quando meu PATH estiver definido, mas não configurado para ser exportado.
# PATH is set but not exported
jo@hostname:~/tmp$ winruby --version
running winruby --version
jo@hostname:~/tmp$ env winruby --version
env: winruby: No such file or directory
# print variables starting with PATH
jo@hostname:~/tmp$ set |grep -e ^PATH
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/home/jo/tmp/bin
# print exported variables starting with PATH
jo@hostname:~/tmp$ env | grep -e ^PATH
# Oops ! nothing, so exporting PATH
jo@hostname:~/tmp$ export PATH
jo@hostname:~/tmp$ env | grep -e ^PATH
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/home/jo/tmp/bin
# Final check
jo@hostname:~/tmp$ env winruby --version
running winruby --version