我正在尝试运行一个在用户指定的目录中安装某些文件的脚本。用户指定目录后,我想将主文件传输到该目录,以便它可以执行更多的任务,然后最终删除自己一旦完成。
#prompt for directory in which to build project
read -p "Drag and drop the directory in which you'd like to build this project: "
echo "reply is $REPLY"
cp ./myScript.sh $REPLY
/bin/bash $REPLY/myScript.sh
我有脚本从这个问题中执行文件。我尝试使用source $REPLY/myScript.sh
以及sh $REPLY/myScript.sh
进行操作。我得到错误 /path/to/file/ is a directory
一定是不知道我要运行myScript.sh,但我不明白我是如何给它给它的。
可能的原因是,拖放在目录名称之后放置了空格。
因此:
/bin/bash $REPLY/myScript.sh
将运行
/bin/bash /path/to/directory /myScript.sh
一个简单的修复,如果只是标准空间,则是:
/bin/bash "${REPLY% }/myScript.sh"
您错过了 read
命令中的变量,因此会失败,因为您正在读取的内容没有存储。您可以如下替换read
命令。
#prompt for directory in which to build project
read -p "Drag and drop the directory in which you'd like to build this project: " REPLY