Shell:提示用户输入目录路径

2024-05-28 23:54:05 发布

您现在位置:Python中文网/ 问答频道 /正文

我在找一个类似Python的Bashos.path.join操作系统. 我试图提示用户输入一个目录路径,然后将使用该路径(在等效路径连接的帮助下)执行其他操作。在


Tags: path用户路径目录joinbashos
2条回答

您可能正在查找readlink命令。可以使用readlink -m "some/path"将路径转换为规范路径格式。不完全是路径.连接但它确实提供了类似的功能。在

编辑:正如有人向我指出的readlink实际上更像{}。它也是一个GNU扩展,并非所有*nix系统都可用。我将把我的答案留在这里,以防它在某些方面仍有帮助。在

bash脚本中使用"${dirpath}/${filename}"是非常安全的。在

bash只理解POSIX样式的路径名。即使您在Windows上构建了MinGW/native bash。这意味着/始终是路径分隔符。这意味着在一行中放两个斜杠是没有坏处的,所以即使$dirpath碰巧以'/'结尾,一切都很好。在

例如:

$ cat join.sh
#!/bin/bash
echo -n 'Path: '
read dirpath
echo -n 'Filename: '
read filename
ls -l "${dirpath}/${filename}"
$ ./join.sh
Path: /etc/
Filename: hosts
-rw-r r   1 root  wheel  236 Sep 15  2014 /etc/hosts

在Python中,仅以这种方式使用/是不安全的。Python在POSIX和类似POSIX的系统上处理本机格式路径名,但在Windows上也处理本机格式路径名。*,其中路径分隔符是\,两个反斜杠在某些地方有特殊的含义,您需要担心驱动器号等等。因此,您必须使用os.path.join进行移植。在

*它还提供了经典Mac(使用冒号)、VMS(它混合了您不想知道的不同东西)等的代码,如果您使用的是一个足够旧的Python。

相关问题 更多 >

    热门问题