Wikipedia:Reference desk/Archives/Computing/2023 June 28
Appearance
Computing desk | ||
---|---|---|
< June 27 | << May | June | Jul >> | June 29 > |
Welcome to the Wikipedia Computing Reference Desk Archives |
---|
The page you are currently viewing is a transcluded archive page. While you can leave answers for any questions shown below, please ask new questions on one of the current reference desk pages. |
June 28
[edit]IPv10?
[edit]Has anyone heard of IPv10? I'm guessing it's a joke, that needs to be AFD'd. —scs (talk) 14:17, 28 June 2023 (UTC)
- Answering my own question, this Stack Exchange thread suggests it is, if not a pure joke, certainly not anything that's being seriously considered by more than a tiny handful of people. —scs (talk) 14:42, 28 June 2023 (UTC)
- "IPv10 is the Proposed version of Internet Protocol announced by an anonymous group in 2023 on the Internet in June 2023." Well, if that's not a reliable source, I don't know what is. Matt Deres (talk) 15:07, 28 June 2023 (UTC)
- And even that's not accurate — the IETF draft (proto RFC) first came out in 2016.
- (I can't be bothered to see if what the proto RFC proposed is what the "article" describes — although it's perhaps telling that the article doesn't even cite the RFC.) —scs (talk) 19:56, 28 June 2023 (UTC)
How would you describe what this code is doing?
[edit]function read_and_verify {
read -p "$1:" tmp1
read -p "$2:" tmp2
if [ "$tmp1" != "$tmp2" ]; then
echo "Values unmatched. Please try again."; return 2
else
read "$1" <<< "$tmp1"
fi
}
read_and_verify domain "Please enter the domain of your web application twice"
read_and_verify dbrootp "Please enter the app DB root password twice"
read_and_verify dbuserp "Please enter the app DB user password twice"
I understand that read gets input and store it in memory and this happens each time the function, which is named read_and_verify
is running.
But what's goging on here wholesomely and is there a simpler way to do store data from the user? 2A10:8012:1:A85B:748D:C39A:189B:D08B (talk) 21:22, 28 June 2023 (UTC)
- It looks buggy to me. I think the argument
"$1:"
in the first line of the function body should be"$2:"
, while the next line should beread -p "Again, please:" tmp2
– assuming the-p
argument stands for a prompt to the user. Expanding the first two limes for the first function call then results inread -p "Please enter the domain of your web application twice1:" tmp1
read -p "Again, please:" tmp2
- Function
read
gets input (a string) from a channel and assigns it to a variable. Internally, it uses the variablestmp1
andtmp2
, and if both inputs are the same it then sets the variable that is the first argeument with which it is called –domain
,dbrootp
ordbuserp
– to that common string. I'm not quite sure of the level at which this should be explained, since the code appears fairly self-explanatory to me. --Lambiam 00:40, 29 June 2023 (UTC)
- Thanks a lot, User:Lambiam. A Bash layman like me which is not a Linux Sysadmin should probably better off use something like this:
read -p email_1
read -p email_2
if [ "$email_1" = "$email_2" ]; then
echo $email_1.
else
echo Mismatch.
fi
- I just need code that I could understand immediately a years onward. 2A10:8012:1:A85B:A9A0:B966:CE15:D2AB (talk) 09:52, 29 June 2023 (UTC)
- In the
read
command, the-p
option writes a prompt. Soread -p abc xyz
means more or less the same asecho -n abc; read xyz
. The variable namesemail_1
andemail_2
are confusing; they are meant to contain passwords entered by the user through the keyboard. Above, the effect ofecho $email_1.
is that the password the user has just entered twice is echoed back to them (which might surprise and confuse them). I do not see that it is further used --Lambiam 10:17, 29 June 2023 (UTC)- "I just need code that I could understand immediately a years onward", and you are missing the single most important thing about coding: comments. Try something like:
- In the
- I just need code that I could understand immediately a years onward. 2A10:8012:1:A85B:A9A0:B966:CE15:D2AB (talk) 09:52, 29 June 2023 (UTC)
#
# Define a function to obtain a string and check it
# by asking the user to type it twice.
#
# Parameter: the name of the string to return.
#
# Returns: string to stdout
#
# Side effects: uses stderr to contact the user.
#
function read_and_verify {
local tmp1 tmp2
read -p "Please enter the $1:" tmp1
read -p "Again please to check:" tmp2
if [ "$tmp1" != "$tmp2" ]; then
echo "Values unmatched. Please try again." >&2
return 2
fi
echo "$tmp1"
}
#
# Get the domain, dbrootp and dbuserp from the user.
#
domain=$( read_and_verify domain )
dbrootp=$( read_and_verify dbrootp )
dbuserp=$( read_and_verify dbuserp )
#
# For test purposes:
#
echo "domain: $domain"
echo "dbrootp: $dbrootp"
echo "dbuserp: $dbuserp"
- Obviously a real script will need to do something with the error return, or else code the function to restart when the values don't match. Martin of Sheffield (talk) 11:03, 29 June 2023 (UTC)
- Thanks a lot, dear Martin. I use code comments since about year 2010, I just didn't use them here :) 2A10:8012:F:F548:5831:5F73:4C2B:3E83 (talk) 18:32, 29 June 2023 (UTC)
- Obviously a real script will need to do something with the error return, or else code the function to restart when the values don't match. Martin of Sheffield (talk) 11:03, 29 June 2023 (UTC)