簡體   English   中英

if else語句錯誤檢查

[英]if else statement error checking

我試圖進行錯誤檢查,以便如果該文件不是普通文件,它將回顯File不是普通文件。

#!/bin/csh

echo Enter file name
set filename = $<

if(-f $filename)then

        if(-z $filename)then
        rm $filename    

        else
        clear
        echo $filename
        du -sh $filename
        stat -c %h $filename
        stat -c %U $filename
        date -r $filename

        endif
else
echo File is not an ordinary file
endif

當我使用例如fake.txt運行它時

du:無法訪問fake.txt': No such file or directory stat: cannot stat fake.txt':沒有這樣的文件或目錄統計:無法stat`fake.txt':沒有這樣的文件或目錄日期:fake.txt:否這樣的文件或目錄

我想念什么?

REDO:

#!/bin/csh

echo Enter file name
set filename = $<

endif
test -f $filename

if ( $status == 0 ) then
        if(-z $filename)then
        rm $filename

        else
        clear
        echo $filename
        du -sh $filename
        stat -c %h $filename
        stat -c %U $filenam
        endif
else
  echo "File is not an ordinary file."
endif

有一種更簡單的方法來確定文件是否為常規文件(並存在):

#!/bin/csh

echo "Enter filename: "
set filename = $<
test -f $filename

if ( $status == 0 ) then
  echo "File is an ordinary file."
else
  echo "File is not an ordinary file."
endif

# end of file.

有關test(1)如何工作的詳細信息,請參見相應的手冊頁。 在此示例中,我簡單地使用了一個事實,即如果未滿足使用的測試條件,則test(1)會以非零退出代碼退出:switch -f測試給定的參數是否存在並且是常規文件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM