6、使用shift语句编写shell脚本程序,从命令行输入多个字符串,分别对每个字符串进行判断,如果其为目录,则查看该目录,如果为文件,则显示其内容,如果为其它,则将该字符串显示出来
时间: 2024-09-23 16:08:50 浏览: 37
在Shell脚本中,您可以使用`shift`语句配合条件判断(如`if...then...fi`结构)来实现这个功能。下面是一个简单的例子:
```bash
#!/bin/bash
# 获取用户输入的字符串
read -a strings
# 使用shift遍历每个字符串并进行判断
while [ "$#" -gt 0 ]; do
str="$1"
# 判断是否为目录
if [[ -d $str ]]; then
echo "进入目录: $str"
cd "$str" || { echo "无法进入目录: $str"; exit 1; }
# 判断是否为文件
elif [[ -f $str ]]; then
echo "查看文件: $str"
cat "$str"
else
echo "非目录和文件: $str"
fi
# 移除第一个元素,准备下一个判断
shift
done
# 如果没有使用完所有输入,可能会剩下最后一个元素,需要单独处理
if [ "$#" -ne 0 ]; then
echo "剩余未处理的字符串: $str"
fi
```
在这个脚本中,首先获取用户输入的多个字符串,并用`shift`语句逐个处理。对于每个字符串,我们检查它是否为目录(使用 `-d` 检查)或文件(使用 `-f` 检查),然后采取相应的行动。如果不是这两种情况,就直接输出字符串。
当所有输入处理完毕后,会有一个额外的检查,因为`shift`只会删除数组的第一个元素,所以如果没有处理完所有的输入,最后一项会被保留下来。
运行此脚本时,在命令行传入你想要测试的字符串即可。例如:`./script.sh dir1 file1 text1`。
阅读全文