要旨
VALUE="true" if [ "x${VALUE:-false}" = "xtrue" ]; then echo "trueが入っている" else echo "falseが入っている" fi
詳細
${VALUE:-false}
これはデフォルト値を定めている。もし VALUE
が未定義なら、 -
の後ろに書いた値が使用される。
VALUE="true" if [ "x${VALUE:-false}" = "xtrue" ]; then echo "trueが入っている" else echo "falseが入っている" fi
${VALUE:-false}
これはデフォルト値を定めている。もし VALUE
が未定義なら、 -
の後ろに書いた値が使用される。
console.log('lv. 0') console.group() console.log('lv. 1') console.groupEnd() console.group() console.group() console.log('lv. 2') console.groupEnd() console.log('lv. 1') console.groupEnd() console.log('lv. 0')
複数回 console.group()
を呼べば入れ子も可能。
git push origin `git rev-parse --abbrev-ref HEAD`
git rev-parse --abbrev-ref HEAD
は、現在居るブランチの名前を返してくれる。下記がその例。
$ git rev-parse --abbrev-ref HEAD
feature/add_comission
git push origin ${BRANCH_NAME}
は、 origin
に対し、 ${BRANCH_NAME}
をpushする。
なのでこれを組み合わせると、ワンライナーで現在居るブランチをリモートにpushできる。
ちなみに、筆者は下記のようにエイリアスに登録して使っている。
alias gpuo-='git push origin `git rev-parse --abbrev-ref HEAD`'
>>> frozenset(['a', 'b', 'c']).add('z') Traceback (most recent call last): File "<stdin>", line 1, in <module> AttributeError: 'frozenset' object has no attribute 'add'
fronzenset
に対して add()
した際は、特別なエラーではなく AttributeError
が出る点に注意。
[1] pry(main)> [1, nil, false, true].any? => true [2] pry(main)> [nil, false].any? => false
全てを検査したい場合は、 Enumerable#all?
を使えば良い。
class Person { constructor(name, height, weight) { this.name = name this.height = height this.weight = weight } getData () { return { name: this.name, height: this.height, weight: this.weight, } } } taro = new Person('taro', 180, 60) console.log(taro.getData()) // => {name: 'taro', height: 180, weight: 60}
Rubyで書いたらこんな感じ。
class Person def initialize(name, height, weight) @name = name @height = height @weight = weight end def getData return { name: @name, height: @height, weight: @height, } end end taro = Person.new('taro', 180, 60) taro.getData # => {:name=>"taro", :height=>180, :weight=>180}
classの定義はホイスティングされないので注意。
意識的に時間を作るようにしないと、最近執筆のための余裕がなくなって時間切れ、ということがちょいちょいある。
夜にその日の分を書くのではなくて、次の日の分を書いてしまうように変えなければ、と思う。