Tâm sự nhảm (skip for now): Năm mới sắp hết, hôm nay là ngày làm việc cuối cùng của năm - friday 29/12 (thật ra hôm nay booked off rồi :v). Nên cũng muốn viết một cái gì đó. Cho nên hôm nay sẽ viết về một thứ liên quan tới công việc của mình trong nửa cuối năm vừa qua, đó chính là làm việc với scripts.
Kinh nghiệm với
Chúng ta luôn có folder dự phòng /tmp
ở đâu đó.
Khi làm một lệnh gì đó nên check nếu lệnh đó có thể fail và gây crash. Một số ví dụ
# Copy file ở SOURCE -> TARGET
scp $SOURCE/my_awesome_file $TARGET:/still_my_awesome_file
Nên:
scp ... || (echo "failed yada yada"; exit 1)
Những lệnh cd
về technically vẫn có thể failed với những unexpected path.
Use "|| true" to avoid interruption on stopping failure
docker-compose -f ${hostConfig.dockerComposeYmlPath} down -v || true
This stop on errors but hide all errors.
- Error
mkdir -p ${hostConfig.dockerRootDataDir} || true
echo "Success!"
$\leftarrow$|| true
here seems pointless, as it'll continue anyway. Also confusing in that it'll always write Success! even if mkdir fails -> It was meant to be || exit 1
if [ ! -f "$file_path" ]; then
echo "Expecting the file at path $file_path but it's unavailable. Stop now"
should be going to stderr via >&2?
# For debug when needed
set -x