COLUMNS
変数はbashの予約変数なので、意図しないタイミングで変更されてスクリプト実行が失敗する可能性がある。
以下のスクリプトを実行すると、mkdir
の後でCOLUMNS
変数が上書きされているのがわかる。
#!/bin/bash
COLUMNS="a,b,c"
echo ${COLUMNS}
mkdir -p /tmp/t
echo ${COLUMNS}
$ bash test.sh
a,b,c
204
その他の予約変数は Bash Guide for Beginners | 3.2.4. Reserved variables に記載がある。
LINES
などは同じ間違いをしてしまいそう。