gpt4 book ai didi

linux - if else 语句错误检查

转载 作者:太空宇宙 更新时间:2023-11-04 04:09:07 29 4
gpt4 key购买 nike

我正在尝试进行错误检查,以便如果该文件不是普通文件,它将回显“文件不是普通文件”。

#!/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':没有这样的文件或目录
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 测试给定的参数是否存在并且是常规文件。

关于linux - if else 语句错误检查,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19946884/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com