接受文件系统路径作为输入
当接受文件系统路径作为输入时,我们应该使用带有 -e 选项的 read,因为这允许用户使用 tab 来完成文件和目录名称。
read -e inputPath
然而,这还不够,因为用户还可能输入魔法变量,例如 $USER 变量,它将链接到用户的主目录。
简单地用期望值替换这些特殊情况并不总是足够的。
我们还得到了波浪号 (~) 字符的奇怪情况,它可以用作用户主目录的“快捷方式”。
但是,它也可以用于获取其他用户的主目录。
因此,我们应该注意正确解析用户提供的路径。
在 shell 脚本中,我们可能希望从用户那里读取输入,并根据输入的内容执行代码的条件执行。
其他时候,我们可能只想将输入提供给系统命令。
不管是什么情况,我们都可以使用 read 命令接受用户输入。
通过包含 -e 选项,我们甚至可以允许用户使用 TAB 键完成文件路径,就像他们正常使用终端时一样。
一个简短的示例脚本如下所示:
#!/bin/sh printf "\n Please type your username:\n\n" read userName if [ "$userName" = "" ] then printf "\nYou did not provide a user name, you ass clown!\n\n" else printf "\n\nHallo $userName""\n\n" fi
日期:2020-06-02 22:17:32 来源:oir作者:oir