พิจารณาใช้curlแทนwget:
curl -o "$file" -z "$file" "$uri"
man curl พูดว่า:
-z/ --time-cond <date expression>
(HTTP / FTP) ขอไฟล์ที่ได้รับการแก้ไขช้ากว่าเวลาและวันที่ที่กำหนดหรือไฟล์ที่ถูกแก้ไขก่อนเวลานั้น นิพจน์วันที่สามารถเป็นสตริงวันที่ได้ทุกประเภทหรือหากไม่ตรงกับสตริงภายในใด ๆ ก็จะพยายามรับเวลาจากชื่อไฟล์ที่กำหนดแทน
หาก$fileไม่จำเป็นต้องมีอยู่แล้วคุณจะต้องใช้-zเงื่อนไขแฟล็กโดยใช้test -e "$file":
if test -e "$file"
then zflag="-z '$file'"
else zflag=
fi
curl -o "$file" $zflag "$uri"
(โปรดทราบว่าเราไม่ได้อ้างถึงการขยายตัวของ$zflagที่นี่เนื่องจากเราต้องการให้แยกเป็น 0 หรือ 2 โทเค็น)
หากเชลล์ของคุณรองรับอาร์เรย์ (เช่น Bash) เรามีเวอร์ชั่นที่ปลอดภัยกว่าและสะอาดกว่า:
if test -e "$file"
then zflag=(-z "$file")
else zflag=()
fi
curl -o "$file" "${zflag[@]}" "$uri"