X-Recipient: archive-cygwin AT delorie DOT com X-Spam-Check-By: sourceware.org Message-ID: Date: Wed, 5 Mar 2008 17:27:39 +0800 From: "bootleg86 bootleg86" To: cygwin AT cygwin DOT com Subject: bash programming: testing for empty string MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Content-Disposition: inline Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com Delivered-To: mailing list cygwin AT cygwin DOT com Hi, I'm trying to find the time of a file by doing this. filetime=`ls -l --time-style=+%a:%H:%M /tmp/1.txt | awk '{print $6}'` if [ -z "$filetime"]; then echo "File does not exist" else echo "Time file: $filetime" fi However, when the file does not exist and filetime returns an empty string, it does not evaluate [ -z "$filetime" ] to true I have also tried the reverse which is if [ -n "$filetime"]; then echo "Time file: $filetime" else echo "File does not exist" fi but I still get the same results. What does $filetime evaluate to when the command exits with an error? -- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Problem reports: http://cygwin.com/problems.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/