我正在寻找将变量传递给脚本(我知道如何做到这一点),该变量将由脚本回显以便稍微修改该变量。
$ [scriptname] foo bar
其中 [scriptname] 是程序的名称,以及foo
传递bar
的两个参数。[编辑澄清,在评论后:] 生成的文件应命名为foo_bar1
,但用户可以选择对此文件名进行细微修改,而这些修改是事先无法知道的。因此它可能看起来像
$ [scriptname] foo bar
The output file name will be foo_bar1
在这里我希望我可以交互地使用,比如反斜杠,删除1
并用下划线(_
)和替换它2
:因此输出文件名将是foo_bar_2
这随后将是脚本中已知或新的变量,以便该脚本的结果可以写入名为的输出文件foo_bar_2
。
我提出这个问题的原因是,文件名不只是 3 个字符,而是相当长,并且包含特定数据。因此用户不应该(尝试)重新输入数十个字符;通常输出文件名将是建议的文件名。用户将看到它,通常只需“输入”。虽然也有机会添加自己的小修改。[我希望这能更好地解释我需要什么。?]
这可能吗?如果可以,我很乐意学习如何做到这一点。而且不一定只是最后一个数字(我知道如何删除/隔离它)。但有时,我应该也能够调用输出foofoo_bar_2
。
根据我对您要执行的操作的理解,我编写了一个 bash 脚本。它需要两个参数。如果没有提供两个参数,脚本将退出。如果脚本找到两个参数,它会将它们与中间的
_
和1
作为后缀的 组合起来形成一个“文件名”。然后脚本会将此“文件名”呈现给用户,用户将有机会随意编辑它。脚本:
创建一个名为的文件,
altname
其内容如下:保存文件。打开终端并使用以下命令运行脚本:
您应该会看到类似上面的提示。使用箭头键、删除、退格等键来更改名称并点击Enter。然后脚本将显示最终的文件名。
希望这有帮助