Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash:在输出中重用printf变量_Bash_Variables_Printf - Fatal编程技术网

Bash:在输出中重用printf变量

Bash:在输出中重用printf变量,bash,variables,printf,Bash,Variables,Printf,是否可以在格式化中多次使用传递给printf的变量 例如,使用这一行: printf 'Hi %s, welcome to %s. %s is a great place to work. Thanks %s.' "John" "The Icecream Factory" 如何“重用”printf中的第一个和第二个变量 我的想法是: printf 'Hi %s[1], welcome to %s[2]. %s[1] is a great place to

是否可以在格式化中多次使用传递给
printf
的变量

例如,使用这一行:

printf 'Hi %s, welcome to %s. %s is a great place to work. Thanks %s.' "John" "The Icecream Factory"
如何“重用”printf中的第一个和第二个变量

我的想法是:

printf 'Hi %s[1], welcome to %s[2]. %s[1] is a great place to work. Thanks %s[2].' "John" "The Icecream Factory"
。。。但显然不是这样

期望输出 实际产量
工作环境是Ubuntu 20中的
bash

虽然我认为不可能使用
printf
的内置
bash
实现或独立的GNU
printf(1)
程序,但如果你可以将
zsh
作为目标,它的
printf
版本支持POSIX风格
printf(3) 
参数索引:

通常,转换规范按顺序应用于每个参数,但它们可以通过将
%n$
替换为
%n$
*
替换为
*n$
来显式指定要使用的
n
第个参数。建议不要将此显式样式的引用与普通样式和handli混合使用此类混合样式的ng可能会在将来发生变化

$printf'您好%1$s,欢迎来到%2$s。%2$s是一个很好的工作场所。谢谢%1$s。\n“约翰”冰淇淋厂
嗨,约翰,欢迎来到冰淇淋厂。冰淇淋厂是一个工作的好地方。谢谢约翰。

虽然我认为不可能使用
printf
的内置
bash
实现或独立的GNU
printf(1)
程序,但如果可以将
zsh
作为目标,那么它的
printf
版本支持POSIX风格
printf(3)
参数索引:

通常,转换规范按顺序应用于每个参数,但它们可以通过将
%n$
替换为
%n$
*
替换为
*n$
来显式指定要使用的
n
第个参数。建议不要将此显式样式的引用与普通样式和handli混合使用此类混合样式的ng可能会在将来发生变化

$printf'您好%1$s,欢迎来到%2$s。%2$s是一个很好的工作场所。谢谢%1$s。\n“约翰”冰淇淋厂
嗨,约翰,欢迎来到冰淇淋厂。冰淇淋厂是一个工作的好地方。谢谢约翰。

我不相信
printf
格式字符支持这一点。您为什么要使用
%s
?定义变量更容易,可以在字符串中多次使用,例如
n=“John”;f=“the Icecream Factory”;printf“嗨$n,欢迎使用$f.$f是一个很好的工作场所。谢谢$n。”
是的,这很好,但我被告知在
printf
格式字符串中使用变量是不好的做法:我不相信
printf
格式字符支持这一点。您必须使用
%s
的原因是什么?定义变量更容易,可以在字符串中多次使用,例如
n=“John”;f=“冰淇淋工厂”;printf“嗨$n,欢迎来到$f.$f是一个工作的好地方。谢谢$n。“
是的,这很好,但有人告诉我,在
printf
格式字符串中使用变量是不好的做法:如果将它添加到
bash
,它几乎肯定会使用相同的语法fwiw。如果将它添加到
bash
,它几乎肯定会使用相同的语法fwiw。
Hi John, welcome to The Icecream Factory. The Icecream Factory is a great place to work. Thanks John.
Hi John, welcome to The Icecream Factory.  is a great place to work. Thanks .