如何将用户输入添加到从别名调用的终端命令?

How do I add user inputs to a terminal command which is called from an alias?

我一直在使用 Duck FTP CLI,因为它有一个简洁的选项可以并行下载同一文件,这大大加快了下载速度,唯一的问题是我每次都必须输入终端命令很长。我环顾四周并试图自己弄清楚,但我对实现我所追求的目标实际需要做些什么感到困惑。

我希望发生以下情况。

有一个别名可以调用某些函数(或我不确定的特定操作)以允许在命令中的两个不同点输入文本。完整的文本行是这样的:

duck --parallel 10 -download ftps://someserver.com/files/USER INPUT HERE /Users/Sereniity/Downloads/FTP/USER INPUT HERE  -u username -p password

所以它最终会在终端内变成这样:

duckftp [Enter]

Type first directory: /path/to/download.iso [Enter]

Type second directory: /ISO/ [Enter]

然后将这两个值插入到需要 运行 和目录路径的完整命令中,然后执行。

任何帮助将不胜感激,我已经寻找了几个小时,但我不确定我具体需要做什么才能研究它。

谢谢。

考虑使用 shell function:

而不是别名
duckftp() {
    duck --parallel 10 -download "ftps://someserver.com/files/" "/Users/Sereniity/Downloads/FTP/"  -u username -p password
}

将此添加到您的 .profile,然后可以在您的终端中调用它:

duckftp source/file.name destination/file.name

该函数接受您传递给它的两个参数,并通过使用 </code> 和 <code> 引用它们来将它们代入 duck 命令。