声明一个没有输入的变量

声明一个没有输入的变量

我希望能够从 shell 历史记录中检索输入,以便在脚本中设置变量。然后我想在 if 循环中使用这些变量,但我无法正确设置变量。

输入阶段:我的初始输入将通过命令行进行。以下是一些可能性。

-> string
-> string AA
-> string 99

该字符串与启动我的脚本的别名相关联。我的脚本的主要功能如下。

inputsubstring()
{
strings /user/.sh_history | grep '^\string' | tail -1 | cut -d' ' -f2
}

所以最初,我会得到一个如下所示的字符串:

substring
substring AA
substring 99

因为我在函数末尾使用 cut 命令,所以理论上我会收到以下输出。

AA
99

现在,将变量设置为上述命令可以查找字母数字输出,但对于没有第二个字段的字符串则效果不佳。事实上,我无法让它设置。使用有问题的字符串运行脚本实际上会回显有关最后一个字母数字值的信息。我该如何让它发挥作用。

我尝试创建另一个这样的值:

secondvar=${first:-default}

但它并没有奏效。

另外:我尝试使用字符串长度和变量赋值,但这没有用。我应该怎么办?

更新:由于我只需要单独获取“字符串”一定次数,因此我创建了一个单独的函数,涉及连接我的历史记录并查看最后的输入。

laststring()
{
cat /user/history | tail -1
}

答案1

您可以使用历史命令来搜索所需的命令并分配这样的变量。

如果您运行ls并且历史记录显示该命令是编号 99,您可以将其分配给如下变量:

var=!99

相关内容