elves / elvish

Powerful scripting language & versatile interactive shell
https://elv.sh/
BSD 2-Clause "Simplified" License
5.63k stars 300 forks source link

For loop fails as script but works in the REPL #1840

Open sebastien opened 1 week ago

sebastien commented 1 week ago

What happened, and what did you expect to happen?

When running the following script using elvish script.elv fails with the following error Exception: exec: "str:trim": executable file not found in $PATH. However, copy-pasting each line in the REPL works as expected.

Script:

var lines = [one two three]
for line $lines { echo (str:trim $line ' ') }

Using Elvish 0.21.0

Output of "elvish -version"

0.21.0

Code of Conduct

hanche commented 6 days ago

You have to include use str in your script.

You probably have that line in rc.elv, but elvish doesn't read the init files when executing a script. (To see what I mean, try your example in an interactive shell started as elvish -norc.)