Tôi đang chạy đoạn script bên dưới để tự động tải xuống các tệp từ máy chủ bằng lftp. Nó hoạt động ngoại trừ khi nó chạy tôi nhận được thông báo lỗi
trap: SIGINT: bad trap
Nếu tôi thay thế SIGINT và SIGTERM bằng INT và TERM thì nó vẫn hoạt động, nhưng tôi không biết liệu nó có đạt được mục đích tương tự không. Đây là trên Linux Debian 4.9.2-10.
#!/bin/sh
login="login"
pass="password"
host="server.server.com"
remote_dir='~/remote/dir'
local_dir="/local/dir"
base_name="$(basename "$0")"
lock_file="/tmp/$base_name.lock"
trap "rm -f $lock_file" SIGINT SIGTERM
if [ -e "$lock_file" ]
then
echo "$base_name is running already."
exit
else
touch "$lock_file"
/usr/bin/lftp -p 22 -u "$login","$pass" sftp://"$host" << EOF
set sftp:auto-confirm yes
set mirror:use-pget-n 5
mirror -c -P5 "$remote_dir" "$local_dir"
quit
EOF
rm -f "$lock_file"
trap - SIGINT SIGTERM
exit
fi
ln -s /etc/passwd /tmp/$base_name.lock
hoặc tương đương?