Ternary operator (?:) in Bash
ternary operator ? : is just short form of if/else case “$b” in 5) a=$c ;; *) a=$d ;; esac Or [[ $b = 5 ]] && a=”$c” || a=”$d”
ternary operator ? : is just short form of if/else case “$b” in 5) a=$c ;; *) a=$d ;; esac Or [[ $b = 5 ]] && a=”$c” || a=”$d”
You cannot have spaces around the = sign. When you write: STR = “foo” bash tries to run a command named STR with 2 arguments (the strings = and foo) When you write: STR =foo bash tries to run a command named STR with 1 argument (the string =foo) When you write: STR= foo bash … Read more
if no such option exists, then maybe there is a nice idiomatic one-liner for doing that ? like, using for…of, or similar ? Indeed, there are several ways to convert a Set to an Array: Using Array.from: Note: safer for TypeScript. const array = Array.from(mySet); Simply spreading the Set out in an array: Note: Spreading … Read more
(Theoretically) in HTML 4, <foo / (yes, with no > at all) means <foo> (which leads to <br /> meaning <br>> (i.e. <br>>) and <title/hello/ meaning <title>hello</title>). I use the term “theoretically” because this is an SGML rule that browsers did a very poor job of supporting. There was so little support (I only ever … Read more
The single star * unpacks the sequence/collection into positional arguments, so you can do this: def sum(a, b): return a + b values = (1, 2) s = sum(*values) This will unpack the tuple so that it actually executes as: s = sum(1, 2) The double star ** does the same, only using a dictionary … Read more
In Bash, test and [ are shell builtins. The double bracket, which is a shell keyword, enables additional functionality. For example, you can use && and || instead of -a and -o and there’s a regular expression matching operator =~. Also, in a simple test, double square brackets seem to evaluate quite a lot quicker … Read more
Declaration A prototype for a function which takes a function parameter looks like the following: void func ( void (*f)(int) ); This states that the parameter f will be a pointer to a function which has a void return type and which takes a single int parameter. The following function (print) is an example of … Read more
The $ operator is for avoiding parentheses. Anything appearing after it will take precedence over anything that comes before. For example, let’s say you’ve got a line that reads: putStrLn (show (1 + 1)) If you want to get rid of those parentheses, any of the following lines would also do the same thing: putStrLn … Read more
These are the current declaration and initialization methods for a simple array. string[] array = new string[2]; // creates array of length 2, default values string[] array = new string[] { “A”, “B” }; // creates populated array of length 2 string[] array = { “A” , “B” }; // creates populated array of length … Read more
[[ has fewer surprises and is generally safer to use. But it is not portable – POSIX doesn’t specify what it does and only some shells support it (beside bash, I heard ksh supports it too). For example, you can do [[ -e $b ]] to test whether a file exists. But with [, you … Read more