A river of false assumptions and beliefs that leads nowhere.
Fact: nothing is not equal to ni and is not equal to empty string, and is one reserved word. nil is not equal to nothig and is not equal to empty string, and is not one reserved word.
“” is one empty string, and OBVIOUSLY is not nothing and also is not nil
This is valid in any programming language, not just RouterOS scripting.
(I don’t know if there is some language that makes them equivalent, but I doubt it…)
where script!=“” mean where script (is) not equal (to) empty string,
and OBVIOUSLY return all the job on example because all do not have empty string as script value.
The “script” value on the example are “nil”.
The correct syntax is this:
/system script job print where [:typeof $script]!="nil"
So, all “NOT EXPECTED” and “should be” on your topic are wrong, because they are based on your false beliefs and assumptions.
P.S.: print is used to print on the terminal, not to manage values within a script
(for completeness: only a few exceptions are necessary due to the laziness of MikroTik programmers, but it is not for this case).
that’s emotional reply with no meaningful explanation. Please avoid wording “bullshit” and so. The question is NOT NONSENSE, it’s the attempt to understand, but not to listen to things like your last post. Don’t want to explain - your right, but leave your emotions aside this place please, ‘guru’.
The explanation is simple, RouterOS doesn’t compare well two objects that don’t exist when you make them do things that don’t make sense.
How do you compare one object that doesn’t exist with another?
is = because are two identical nil,
$scipt (when is nil) is unexpected the coparision with another nil that is not the same…
4 and 3 are two numbers, but are not the same things…