我正在创建一个.bash_profile脚本,遇到了一个小问题。下面是我的代码片段:
.bash_profile
echo -n "Welcome " whoami echo -n "!"
我希望输出给予如下内容:
Welcome jsmith!
.而不是这个:
Welcome jsmith !
我怎么能把所有这些都放在一条线上呢?任何帮助都非常感谢。如果有帮助的话,我在Ubuntu Server 10.04 LTS上使用Bash Shell。
ecfsfe2w1#
您可以插入$(command)(新样式)或command(旧样式)以将命令的输出插入到双引号字符串中。
$(command)
command
echo "Welcome $(whoami)!"
注意:在脚本中,这将很好地工作。如果您在交互式命令行中尝试它,最终的!可能会给您带来麻烦,因为!会触发历史扩展。
!
命令替换允许命令的输出替换命令名。有两种形式:
或
`command`
Bash通过执行命令并将命令替换为命令的标准输出来执行扩展,**删除任何尾随的换行符 [强调添加]。
rta7y2nd2#
使用此表格。摆脱echo,远离创建一个 subshell。
echo
printf 'Welcome %s!\n' "$USER"
k75qkfdt3#
试试这个:
echo -ne "Welcome `whoami`!\n"
echo -ne "Welcome $(whoami)!\n"
42fyovps4#
您可能需要:
$()结构执行其中的命令,并计算其输出。另一种选择是:
$()
{ echo "Welcome " whoami echo "!" } | tr -d '\n'
虽然有点疯狂无论你做什么,你可能需要在!周围加上单引号。在我的shell中,!是一个历史元字符,即使在双引号内也是如此。
gtlvzcf85#
您可以执行以下操作:
echo "Welcome `whoami`!"
5条答案
按热度按时间ecfsfe2w1#
您可以插入
$(command)
(新样式)或command
(旧样式)以将命令的输出插入到双引号字符串中。注意:在脚本中,这将很好地工作。如果您在交互式命令行中尝试它,最终的
!
可能会给您带来麻烦,因为!
会触发历史扩展。命令替换
命令替换允许命令的输出替换命令名。有两种形式:
或
Bash通过执行命令并将命令替换为命令的标准输出来执行扩展,**删除任何尾随的换行符 [强调添加]。
rta7y2nd2#
使用此表格。摆脱
echo
,远离创建一个 subshell。k75qkfdt3#
试试这个:
或
42fyovps4#
您可能需要:
$()
结构执行其中的命令,并计算其输出。另一种选择是:
虽然有点疯狂
无论你做什么,你可能需要在
!
周围加上单引号。在我的shell中,!
是一个历史元字符,即使在双引号内也是如此。gtlvzcf85#
您可以执行以下操作: