我尝试了“如何在bash中优雅地存储和回显多行?”中展示的解决方案。从2010年5月2日开始,基本上是用双引号标记字符串变量,这样它就可以识别块中的多行。在没有引号的情况下,我将整个字符串转储到单个换行,就像前面问题中的示例一样。但是当我在"$VAR“的两边加上双引号,因为答案是”应该工作“,我得到的结果就是一个双引号,后面跟着两个问号"??”
它位于由.bash_profile调用的.bascrc文件调用的.bash_prompt文件中
这些文件调用的所有其他元素都工作得很好。其中包括路径、cd、提示符、服务器、git位置等元素。我想要添加的是一个多行语句,用于指导用户在Gitlab存储库自上次使用以来由于服务器重启、终端重启等原因而未主动连接时,他们可能需要输入的命令和期望的内容。
我尝试了不加引号,给出了一个连续的字符串,它相当于我想要的五个单独的行,并且用一个终端窗口大小的换行来转储整个字符串。
我删除了前面的双引号,以为它可能在更早的时候就被打开了。An尝试了去掉结尾双引号的另一面。我已经尝试了单引号。我在我想要换行的每一行的末尾尝试了半列。我已经尝试使用\n行创建一个字符串变量并回显字符串。
read -d '' tell_user <<"BLOCK"
If you are planning to utilize Gitlab.com repository?, wait until prompts
turn colors.
YOU MAY NEED TO RUN THE COMMAND ssh-add ~/Directory/ed29183 (Dir & #'s
faked)
THEN AWAIT A REPLY OF Identity added:
THEN RUN THE COMMAND ssh -T git@gitlab.com
TO CONNECT TO THE GITLAB REPOSITORY
BLOCK
echo “$tell_user”
预期结果:
If you are planning to utilize Gitlab.com repository?, wait until prompts turn colors.
YOU MAY NEED TO RUN THE COMMAND ssh-add ~/Directory/ed29183
THEN AWAIT A REPLY OF Identity added:
THEN RUN THE COMMAND ssh -T git@gitlab.com
TO CONNECT TO THE GITLAB REPOSITORY
观察结果:
"??
POSSIBLE STEP UP答案:你可能会看到,我的主要目标是确保本地机器连接到Gitlab和那里的存储库,以便在开发活动期间,如果连接不存在,用户知道它,以及如何重新连接,以便他们可以添加和提交任何更新,等等。提示修改,这一小段代码的一部分,已经告诉用户他们在自己的物理机器上的位置,机器名称和缩写路径位置,还告诉他们正在工作的Git主站或分支。代码片段中的第一个语句是“等待,直到提示符变成颜色”,这样当连接存在时,它就会这样做。我真的很想考虑一种阶梯式终端提示,它让用户和远程机器输入“测试”连接的状态,询问用户是否想要和需要它,如果没有建立连接,然后给出适当的分支操作(包括连接速度的时间延迟处理)。因此,如果有人有更好的答案,有更多的功能,我洗耳恭听。
但就目前而言,如果我能让这条消息逐行显示,而不是一个长字符串转储,我会很高兴。
发布于 2019-04-23 04:35:06
你的文字都使用了“聪明”的引号吗?
echo “$tell_user”
巴什不理解他们。取而代之的是使用普通双引号:
echo "$tell_user"
适用于我:
$ echo $tell_user
If you are planning to utilize Gitlab.com repository?, wait until prompts turn colors. YOU MAY NEED TO RUN THE COMMAND ssh-add ~/Directory/ed29183 (Dir & #'s faked) THEN AWAIT A REPLY OF Identity added: THEN RUN THE COMMAND ssh -T git@gitlab.com TO CONNECT TO THE GITLAB REPOSITORY
$ echo "$tell_user"
If you are planning to utilize Gitlab.com repository?, wait until prompts
turn colors.
YOU MAY NEED TO RUN THE COMMAND ssh-add ~/Directory/ed29183 (Dir & #'s
faked)
THEN AWAIT A REPLY OF Identity added:
THEN RUN THE COMMAND ssh -T git@gitlab.com
TO CONNECT TO THE GITLAB REPOSITORY
发布于 2019-04-25 04:24:01
可能是你在BLOCK ("BLOCK")的两边有引号。尝试删除它们
https://stackoverflow.com/questions/55800179
复制相似问题