如何在终端提示符(bash)中使用变量修改文件';名字?

如何在终端提示符(bash)中使用变量修改文件';名字?,bash,terminal,command-prompt,Bash,Terminal,Command Prompt,我想运行如下命令: $ valgrind --leak-check=full ./program < speed-01.in $ valgrind --leak-check=full ./program < speed-0${A}.in ${A}=1 然而,在这种情况下引入变量似乎不是正确的方法 我的问题是:在这种情况下如何使用变量?甚至可以用这样的方式来写,使整个想法都有意义吗?另一种方式,用你的例子来说是 A=1 valgrind --leak-check=full .

我想运行如下命令:

$ valgrind --leak-check=full  ./program < speed-01.in
$ valgrind --leak-check=full  ./program < speed-0${A}.in ${A}=1
然而,在这种情况下引入变量似乎不是正确的方法


我的问题是:在这种情况下如何使用变量?甚至可以用这样的方式来写,使整个想法都有意义吗?

另一种方式,用你的例子来说是

A=1
valgrind --leak-check=full  ./program < speed-0$((A++))
A=1
valgrind—泄漏检查=完全。/程序
然后,重复最后一行最多九次


例如,如果您想要01..12,这将变得更加复杂。

另一种方法是,使用您的示例

A=1
valgrind --leak-check=full  ./program < speed-0$((A++))
A=1
valgrind—泄漏检查=完全。/程序
然后,重复最后一行最多九次


例如,如果您想要01..12,这将变得更加复杂。

另一种方法是,使用您的示例

A=1
valgrind --leak-check=full  ./program < speed-0$((A++))
A=1
valgrind—泄漏检查=完全。/程序
然后,重复最后一行最多九次


例如,如果您想要01..12,这将变得更加复杂。

另一种方法是,使用您的示例

A=1
valgrind --leak-check=full  ./program < speed-0$((A++))
A=1
valgrind—泄漏检查=完全。/程序
然后,重复最后一行最多九次



例如,如果您想要01..12,这将变得更加复杂。

为什么要迭代数字,而不是查看文件系统上存在哪些文件?@RC,不是没有
或换行。@MateuszPiotrowski,将
var=val
放在命令作为字符串传递给命令之后。我不会说没有办法让它工作——你可以让
somecommand
成为一个解释这些参数的函数——但这有点“愚蠢”。
(顺便说一句,
speed-$num.in
在这里也是完全正确的;当您不需要进行任何花哨的参数扩展时,大括号是可选的,并且您的变量名后面没有可以合法作为名称一部分的字符;句点在shell变量名中是不合法的,因此大括号在这里是可选的)。为什么要迭代数字,而不是查看文件系统上存在哪些文件?@RC,不是没有一个
或换行符。@MateuszPiotrowski,将
var=val
放在命令作为字符串传递给命令之后。我不会说没有办法做到这一点——你可以让
somecommand
一个解释这些参数的函数——但这有点“愚蠢”。
(顺便说一句,
speed-$num.in
在这里也是完全正确的;当您不需要进行任何花哨的参数扩展时,大括号是可选的,并且您的变量名后面没有可以合法作为名称一部分的字符;句点在shell变量名中是不合法的,因此大括号在这里是可选的)。为什么要迭代数字,而不是查看文件系统上存在哪些文件?@RC,不是没有一个
或换行符。@MateuszPiotrowski,将
var=val
放在命令作为字符串传递给命令之后。我不会说没有办法做到这一点——你可以让
somecommand
一个解释这些参数的函数——但这有点“愚蠢”。
(顺便说一句,
speed-$num.in
在这里也是完全正确的;当您不需要进行任何花哨的参数扩展时,大括号是可选的,并且您的变量名后面没有可以合法作为名称一部分的字符;句点在shell变量名中是不合法的,因此大括号在这里是可选的)。为什么要迭代数字,而不是查看文件系统上存在哪些文件?@RC,不是没有一个
或换行符。@MateuszPiotrowski,将
var=val
放在命令作为字符串传递给命令之后。我不会说没有办法做到这一点——你可以让
somecommand
一个解释这些参数的函数——但这有点“愚蠢”。
(顺便说一句,
speed-$num.in
在这里也是完全正确的;当您不需要进行任何花哨的参数扩展时,大括号是可选的,并且您的变量名后面没有可以合法作为名称一部分的字符;句点在shell变量名中是不合法的,因此大括号在这里是可选的)…虽然正确处理01…12的代码是我用printf技巧演示过的,所以应该很容易适应…虽然正确处理01…12的代码是我用printf技巧演示过的,所以应该很容易适应…虽然正确处理01…12的代码是我用printf技巧,所以它应该很容易适应…虽然我已经用printf技巧演示了正确处理01…12的代码,所以它应该很容易适应。完全抛弃printf的循环的另一种选择是“for num in{00..09};do…”完全丢弃printf的循环的一个备选方案类似于“for num in{00..09};do…”完全丢弃printf的循环的备选方案类似于“for num in{00..09};do…”完全丢弃printf的循环的备选方案类似于“for num in{00..09};do…”
A=1
valgrind --leak-check=full  ./program < speed-0$((A++))