Tôi chưa quen với lập trình bash, xin lỗi nếu đây có thể là một loại câu hỏi ngu ngốc. Tôi đã tìm thấy một tập lệnh trên máy chủ của mình và tôi đang cố gắng hiểu từng dòng:
#!/bin/sh
#
# man-db cron weekly
set -e
if ! [ -d /var/cache/man ]; then
# Recover from deletion, per FHS.
mkdir -p /var/cache/man
chown man:root /var/cache/man || true
chmod 2755 /var/cache/man
fi
# regenerate man database
if [ -x /usr/bin/mandb ]; then
# --pidfile /dev/null so it always starts; mandb isn't really a daemon,
# but we want to start it like one.
start-stop-daemon --start --pidfile /dev/null \
--startas /usr/bin/mandb --oknodo --chuid man \
-- --quiet
fi
exit 0
Một số điều tôi không hiểu như
set -e
Tôi đọc về nó, rằng nó "kiểm tra" các lệnh của bạn. Vì vậy, nó đưa ra cảnh báo hoặc một ngoại lệ nếu có sự cố? Hoặc một báo cáo lỗi chi tiết hơn?
if ! [ -d /var/cache/man ]; then OR
if [ -x /usr/bin/mandb ]; then
Điều tôi không hiểu là các lệnh "-d" hoặc "-x" tại mệnh đề if, imho có gì đó bị thiếu ở đó.
chown man:root /var/cache/man || true
Tôi không hiểu phần cuối cùng, lý do của việc "HOẶC THẬT" này là gì.
Có lẽ ai đó có thể giúp tôi?
tia && liên quan đến noircc