if [ -f $1 ];then echo "该文件,存在" ls -l $1 else echo "没有该文件" fi
时间: 2024-05-25 11:14:55 浏览: 15
这是一个 Bash 脚本,用于检查指定的文件是否存在。
脚本的第一行 `if [ -f $1 ]; then` 意思是:如果 `$1`(也就是第一个传入的参数)是一个存在的文件,那么执行下面的语句块。`-f` 表示判断文件是否存在。
如果文件存在,就会输出 `"该文件,存在"`,然后列出文件的详细信息,通过 `ls -l $1` 来实现。
如果文件不存在,就会输出 `"没有该文件"`。
注意,这个脚本需要在命令行中传入一个文件名作为参数,例如 `./check_file.sh myfile.txt`。其中 `check_file.sh` 是脚本的文件名,`myfile.txt` 是要检查的文件名。
相关问题
if [ $# -eq 0 ] ;then echo "未输入任何参数,请输入参数" echo "用法:$0 [文件名|目录名]" fi if [ -f $1 ];then echo "该文件,存在" ls -l $1 else echo "没有该文件" fi if [ -d $1 ];then echo "该目录,存在" ls -ld $2 else echo "没有该目录" fi为啥我没有给任何参数也会往下继续执行判断
这是因为在你的代码中,判断是否输入参数的语句和后面的判断文件或目录是否存在的语句是分开的,没有连续的逻辑判断。当你没有输入参数时,第一个条件 `$# -eq 0` 是成立的,就会执行后面的语句。
你可以将这两个判断语句合并,使用 `elif` 来实现连续的逻辑判断,如下所示:
```bash
if [ $# -eq 0 ]; then
echo "未输入任何参数,请输入参数"
echo "用法: $0 [文件名|目录名]"
elif [ -f $1 ]; then
echo "该文件存在"
ls -l $1
elif [ -d $1 ]; then
echo "该目录存在"
ls -ld $1
else
echo "不存在该文件或目录"
fi
```
这样,当你没有输入参数时,就会直接输出提示信息,不会执行后面的判断语句。如果输入的参数既不是文件也不是目录,则会输出提示信息 "不存在该文件或目录"。
LIST_FILE_OR_DIR_SIZE() { dir_path=$1 file_list=$(ls ${dir_path}) for file in ${file_list}; do if [ -d ${dir_path}"/"$file ]; then #注意此处之间一定要加上空格,否则会报错 LOG $(du -sh ${dir_path}"/"$file) else LOG $(ls -lh ${dir_path}"/"$file | awk '{print $5 $9}') fi done } 上述的函数如何调用
要调用上述函数,你可以按照以下步骤进行:
1. 将给定函数添加到你的shell脚本文件中。
2. 在需要调用函数的地方使用`LIST_FILE_OR_DIR_SIZE 目录路径`的格式来调用函数。
下面是一个示例:
```shell
#!/bin/bash
# 定义函数
LIST_FILE_OR_DIR_SIZE() {
dir_path=$1
file_list=$(ls ${dir_path})
for file in ${file_list}; do
if [ -d ${dir_path}"/"$file ]; then
echo $(du -sh ${dir_path}"/"$file)
else
echo $(ls -lh ${dir_path}"/"$file | awk '{print $5 $9}')
fi
done
}
# 调用函数
LIST_FILE_OR_DIR_SIZE "/path/to/directory"
```
在上述示例中,将`/path/to/directory`替换为你想要查看的目录路径。当你运行脚本时,将会调用`LIST_FILE_OR_DIR_SIZE`函数并传递目录路径作为参数,从而输出目录中文件和文件夹的大小信息。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)