在liunx中用shell编写一个程序脚本,输入一个文件名如果是目录打印出目录,如果不是打印出其他文件
时间: 2023-12-06 14:39:36 浏览: 71
可以使用`if-else`语句和`test`命令来实现这个功能。
代码如下:
```shell
#!/bin/bash
echo -n "请输入文件名:"
read file_name
if [ -d $file_name ]; then
echo "$file_name 是一个目录"
else
echo "$file_name 是一个文件"
fi
```
解释一下:
- `echo -n`:输出提示消息,`-n`选项表示不换行。
- `read`:读取用户输入的文件名。
- `if [ -d $file_name ]; then`:如果文件名是一个目录,则执行`then`后面的语句。
- `echo "$file_name 是一个目录"`:输出提示消息,表示文件名是一个目录。
- `else`:如果文件名不是一个目录,则执行`else`后面的语句。
- `echo "$file_name 是一个文件"`:输出提示消息,表示文件名是一个文件。
注意事项:
- 文件名中不能包含空格,否则会出错。可以使用双引号将变量括起来来避免这个问题,如`if [ -d "$file_name" ]; then`。
- 如果文件名不存在,也会被认为不是一个目录,因此输出结果可能不太符合预期。可以使用`-e`选项来检查文件是否存在,如`if [ -e "$file_name" ] && [ -d "$file_name" ]; then`。
相关问题
在liunx中shell编写一个程序脚本,输入一个文件名,如果是目录打印出目录,如果不是打印出其他文件
可以使用以下 Shell 脚本来实现:
```bash
#!/bin/bash
read -p "请输入一个文件名:" filename
if [ -d $filename ]; then
echo "$filename 是一个目录"
else
echo "$filename 是一个文件"
fi
```
首先使用 `read` 命令读取用户输入的文件名,然后使用 `-d` 判断该文件名是否为目录。如果是目录,则输出提示信息“xxx 是一个目录”,否则输出提示信息“xxx 是一个文件”。
在liunx中用shell编写一个程序脚本,输入姓和名打印出全名
可以用如下的shell脚本实现:
```shell
#!/bin/bash
echo "请输入您的姓:"
read surname
echo "请输入您的名:"
read name
echo "您的全名是:$surname $name"
```
保存以上代码为一个`.sh`文件,然后在终端中使用`chmod +x filename.sh`命令添加执行权限,最后执行`./filename.sh`即可运行该脚本。运行后会提示输入姓和名,输入后即可输出全名。
阅读全文