public_html directory in your home directory was the place where the web server looked for to serve files from. This would make something like http://localhost/~your_username work. But it's been a while since I've done any of this myself...
public_html directory in your home directory was the place where the web server looked for to serve files from. This would make something like http://localhost/~your_username` work. But it's been a while since I've done any of this myself...`
public_html directory in your home directory was the place where the web server looked for to serve files from. This would make something like http://localhost/~your_username work. But it's been a while since I've done any of this myself...
public_html directory in your home directory was the place where the web server looked for to serve files from. This would make something like http://localhost/~ work. But it's been a while since I've done any of this myself...
$ dig @1.1.1.1 +short onlydomains.com.au a
198.50.252.65
$ nc -vvv 198.50.252.65 443
nc: connectx to 198.50.252.65 port 443 (tcp) failed: Connection refused
#OnlyDomains
$ dig @1.1.1.1 +short onlydomains.com.au a
198.50.252.65
$ nc -vvv 198.50.252.65 443
nc: connectx to 198.50.252.65 port 443 (tcp) failed: Connection refused
#OnlyDomains
All sky covered in clouds, except to the East. No chance of witnessing the stars shooting around. Still 25°C. Bah.
dash or ash, very nice POSIX Sh compliant shells:
$ ./foo.sh
./foo.sh: line 5: [: bar: integer expression expected
So the lessons here are twofold:
- Always use
shellcheck to check your shell code- Never use Bash or rely on Bash(isms). Always prefer POSIX Sh
dash or ash, very nice POSIX Sh compliant shells:
$ ./foo.sh
./foo.sh: line 5: [: bar: integer expression expected
So the lessons here are twofold:
- Always use
shellcheck to check your shell code- Never use Bash or rely on Bash(isms). Always prefer POSIX Sh
[ and ] errors out with shellcheck as expected:
Invalid number for -eq. Use = to compare as string (or use $var to expand as a variable). [SC2170]
[ and ] errors out with shellcheck as expected:
Invalid number for -eq. Use = to compare as string (or use $var to expand as a variable). [SC2170]
In POSIX sh, [[ ]] is undefined. [SC3010]
In POSIX sh, [[ ]] is undefined. [SC3010]
shellcheck being used here? It would have picked this (contrived) example up?
bar is referenced but not assigned. [SC2154]
shellcheck being used here? It would have picked this (contrived) example up?
bar is referenced but not assigned. [SC2154]
So this works:
$ bash -c 'set -u; bar=1; foo=$bar; if [[ "foo" -eq "bar" ]]; then echo it matches; fi'
it matches
Without the misleading quotes:
$ bash -c 'set -u; bar=1; foo=$bar; if [[ foo -eq bar ]]; then echo it matches; fi'
it matches
As does this:
$ bash -c 'set -u; bar=1; foo=$bar; if (( foo bar )); then echo it matches; fi'
it matches
What the person originally meant was what bender said:
$ bash -c 'set -u; foo=bar; if \n]; then echo it matches; fi'
it matches
It’s all rather easy once you’ve understood it … but the initial error message of the initial version can be quite unexpected.=
So this works:
$ bash -c 'set -u; bar=1; foo=$bar; if \n]; then echo it matches; fi'
it matches
Without the misleading quotes:
$ bash -c 'set -u; bar=1; foo=$bar; if \n]; then echo it matches; fi'
it matches
As does this:
$ bash -c 'set -u; bar=1; foo=$bar; if (( foo bar )); then echo it matches; fi'
it matches
What the person originally meant was what bender said:
$ bash -c 'set -u; foo=bar; if \n]; then echo it matches; fi'
it matches
It’s all rather easy once you’ve understood it … but the initial error message of the initial version can be quite unexpected.=
So this works:
$ bash -c 'set -u; bar=1; foo=$bar; if [[ "foo" -eq "bar" ]]; then echo it matches; fi'
it matches
Without the misleading quotes:
$ bash -c 'set -u; bar=1; foo=$bar; if [[ foo -eq bar ]]; then echo it matches; fi'
it matches
As does this:
$ bash -c 'set -u; bar=1; foo=$bar; if (( foo bar )); then echo it matches; fi'
it matches
What the person originally meant was what bender said:
$ bash -c 'set -u; foo=bar; if [[ "$foo" = "bar" ]]; then echo it matches; fi'
it matches
It’s all rather easy once you’ve understood it … but the initial error message of the initial version can be quite unexpected.=
So this works:
$ bash -c 'set -u; bar=1; foo=$bar; if [[ "foo" -eq "bar" ]]; then echo it matches; fi'
it matches
Without the misleading quotes:
$ bash -c 'set -u; bar=1; foo=$bar; if [[ foo -eq bar ]]; then echo it matches; fi'
it matches
As does this:
$ bash -c 'set -u; bar=1; foo=$bar; if (( foo bar )); then echo it matches; fi'
it matches
What the person originally meant was what bender said:
$ bash -c 'set -u; foo=bar; if [[ "$foo" = "bar" ]]; then echo it matches; fi'
it matches
It’s all rather easy once you’ve understood it … but the initial error message of the initial version can be quite unexpected.=
So this works:
$ bash -c 'set -u; bar=1; foo=$bar; if [[ "foo" -eq "bar" ]]; then echo it matches; fi'
it matches
Without the misleading quotes:
$ bash -c 'set -u; bar=1; foo=$bar; if [[ foo -eq bar ]]; then echo it matches; fi'
it matches
As does this:
$ bash -c 'set -u; bar=1; foo=$bar; if (( foo bar )); then echo it matches; fi'
it matches
What the person originally meant was what bender said:
$ bash -c 'set -u; foo=bar; if [[ "$foo" = "bar" ]]; then echo it matches; fi'
it matches
It’s all rather easy once you’ve understood it … but the initial error message of the initial version can be quite unexpected.=
So this works:
$ bash -c 'set -u; bar=1; foo=$bar; if [[ "foo" -eq "bar" ]]; then echo it matches; fi'
it matches
Without the misleading quotes:
$ bash -c 'set -u; bar=1; foo=$bar; if [[ foo -eq bar ]]; then echo it matches; fi'
it matches
As does this:
$ bash -c 'set -u; bar=1; foo=$bar; if (( foo bar )); then echo it matches; fi'
it matches
What the person originally meant was what bender said:
$ bash -c 'set -u; foo=bar; if [[ "$foo" = "bar" ]]; then echo it matches; fi'
it matches
It’s all rather easy once you’ve understood it … but the initial error message of the initial version can be quite unexpected.=
But I'm wondering how you discovered it a week later. Are you somehow regularly checking complete recent feed histories?
This project is verrrry alpha. all the configuration is literally in the code.
This project is verrrry alpha. all the configuration is literally in the code.
bar being a variable?
bar being a variable?
bar being a variable?
bar being a variable?
-eq is for numerical comparation only. Weird error message, though. Tells something about the implementation.
h
bash -c 'set -u; foo=bar; if [[ "$foo" = "bar" ]]; then echo it matches; fi'
h
bash -c 'set -u; foo=bar; if [[ "$foo" = "bar" ]]; then echo it matches; fi'
eq is for numericals.
But sadly they’re full of pitfalls. Pitfalls everywhere you look.
Today, a coworker – who’s highly skilled, not a newbie by any means – ran into this:
$ bash -c 'set -u; foo=bar; if \n]; then echo it matches; fi'
bash: line 1: bar: unbound variable
Why’s that happening? I know the answer. Do you? 😂
Stuff like that made me stop using shell scripts at work, unless they’re just 4 or 5 lines of absolutely trivial code. It’s now Python instead, even though the code is often much longer and clunkier, but at least people will understand it more easily and not trip over it when they make a tiny change.=
But sadly they’re full of pitfalls. Pitfalls everywhere you look.
Today, a coworker – who’s highly skilled, not a newbie by any means – ran into this:
$ bash -c 'set -u; foo=bar; if [[ "$foo" -eq "bar" ]]; then echo it matches; fi'
bash: line 1: bar: unbound variable
Why’s that happening? I know the answer. Do you? 😂
Stuff like that made me stop using shell scripts at work, unless they’re just 4 or 5 lines of absolutely trivial code. It’s now Python instead, even though the code is often much longer and clunkier, but at least people will understand it more easily and not trip over it when they make a tiny change.=
But sadly they’re full of pitfalls. Pitfalls everywhere you look.
Today, a coworker – who’s highly skilled, not a newbie by any means – ran into this:
$ bash -c 'set -u; foo=bar; if [[ "$foo" -eq "bar" ]]; then echo it matches; fi'
bash: line 1: bar: unbound variable
Why’s that happening? I know the answer. Do you? 😂
Stuff like that made me stop using shell scripts at work, unless they’re just 4 or 5 lines of absolutely trivial code. It’s now Python instead, even though the code is often much longer and clunkier, but at least people will understand it more easily and not trip over it when they make a tiny change.=
But sadly they’re full of pitfalls. Pitfalls everywhere you look.
Today, a coworker – who’s highly skilled, not a newbie by any means – ran into this:
$ bash -c 'set -u; foo=bar; if [[ "$foo" -eq "bar" ]]; then echo it matches; fi'
bash: line 1: bar: unbound variable
Why’s that happening? I know the answer. Do you? 😂
Stuff like that made me stop using shell scripts at work, unless they’re just 4 or 5 lines of absolutely trivial code. It’s now Python instead, even though the code is often much longer and clunkier, but at least people will understand it more easily and not trip over it when they make a tiny change.=
But sadly they’re full of pitfalls. Pitfalls everywhere you look.
Today, a coworker – who’s highly skilled, not a newbie by any means – ran into this:
$ bash -c 'set -u; foo=bar; if [[ "$foo" -eq "bar" ]]; then echo it matches; fi'
bash: line 1: bar: unbound variable
Why’s that happening? I know the answer. Do you? 😂
Stuff like that made me stop using shell scripts at work, unless they’re just 4 or 5 lines of absolutely trivial code. It’s now Python instead, even though the code is often much longer and clunkier, but at least people will understand it more easily and not trip over it when they make a tiny change.=
on_grid_living. 😛
i was suppose to go for another 30 minutes. my energy level is off and i may need to reassess some goals.
#running #treadmill
i was suppose to go for another 30 minutes. my energy level is off and i may need to reassess some goals.
#running #treadmill
i was suppose to go for another 30 minutes. my energy level is off and i may need to reassess some goals.
#running #treadmill