如何将多个命令放入一个变量中以方便使用

如何将多个命令放入一个变量中以方便使用

我正在编写一个脚本,我注意到某行代码不断被重用。

所以我想为什么不将它放入一个变量中以方便使用,并且当某些内容发生变化时,我只需要在一个位置更改它。

当我这样做时:

scriptpath="echo -e "\n" && curl -s -u lalala:hihihi ftp://ftp.somewhere.com/folder"

然后使用该变量如下:

$SCRIPTPATH/some_script.sh | bash

我收到以下错误消息:

bash: 第 2 行: $'\n': 未找到命令

答案1

您正在描述一种情况,其中的函数正是您想要的。

do_download () {
    printf '\n'
    curl -s -u lalala:hihihi ftp://ftp.somewhere.com/folder
}

然后您可以在代码中使用它作为

do_download

如果函数需要接受参数,例如要使用的 URL,

do_download () {
    printf '\n'
    curl -s -u lalala:hihihi "$1"
}

然后将其称为

do_download "ftp://ftp.somewhere.com/folder"

将命令存储在变量中是非常稀有您想做的事情,如引用和分词,很难做到正确。参见例如“我们如何运行存储在变量中的命令?”。

相关内容