【发布时间】:2014-05-06 22:53:23
【问题描述】:
我正在尝试编写一个脚本,允许用户输入他们想要存储文件的目录的路径。我有一些看起来像这样的东西:
#! /bin/bash
echo "Enter the directory path"
read varpath
varfile="Filename"
echo "This is a file" > "$varpath$varfile"
我想要的是用户输入的名为“文件名”的目录路径中的一个文件,并且有“这是一个文件”这一行但是,我收到一条错误消息,指出没有这样的文件或目录。有人可以告诉我出了什么问题,或者是否有替代解决方案。
谢谢。
【问题讨论】:
-
试试
"$varpath/$varfile" -
完全取决于用户输入的内容。如果
varpath是a,那么此代码将在当前目录中创建aFilename而不会出现错误(假设您有写权限并且磁盘未满等)。如果用户输入的路径包含不存在的目录,那么是的,可以预见的是,会出现错误,因为 shell 不会自发创建这些目录。 (但您的代码可以,而且不会复杂很多。提示:mkdir -p $(dirname "$varpath")如果varpath本身不是目录。)
标签: bash file variables io-redirection