php-fpm with Caddy. Unless I am missing something, FrankenPHP is a modified Caddy. If I already run Caddy, why would I need another one?Of course, FrankenPHP might fit @off_grid_living needs, if he is to switch from Apache to FrankensteinPHP.
#!/bin/sh, it still gets me a Bash that does NOT enter strict POSIX mode. 🫤 The script below uses Bashisms and requests #!/bin/sh but still runs happily …#!/bin/sh
foo=1
if [[ "$foo" == 1 ]]
then
echo match
fi=
#!/bin/sh, it still gets me a Bash that does NOT enter strict POSIX mode. 🫤 The script below uses Bashisms and requests #!/bin/sh but still runs happily …#!/bin/sh
foo=1
if [[ "$foo" == 1 ]]
then
echo match
fi=
#!/bin/sh, it still gets me a Bash that does NOT enter strict POSIX mode. 🫤 The script below uses Bashisms and requests #!/bin/sh but still runs happily …#!/bin/sh
foo=1
if [[ "$foo" == 1 ]]
then
echo match
fi=
#!/bin/sh, it still gets me a Bash that does NOT enter strict POSIX mode. 🫤 The script below uses Bashisms and requests #!/bin/sh but still runs happily …#!/bin/sh
foo=1
if \n]
then
echo match
fi=
#!/bin/sh, it still gets me a Bash that does NOT enter strict POSIX mode. 🫤 The script below uses Bashisms and requests #!/bin/sh but still runs happily …#!/bin/sh
foo=1
if [[ "$foo" == 1 ]]
then
echo match
fi=
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?