当我尝试bash像这样为提示着色时:
export PS1="\e[0;31m[\u@\h \W]\$ \e[m "
Run Code Online (Sandbox Code Playgroud)
它会中断回车(而不是在行已满时转到新行,而是从同一行开始并擦除输入文本)。
如果我删除颜色序列它工作正常。
我使用 Ubuntu 11.10 和终端(guake 也有同样的错误)。
我确信我已经看到有人在他们的终端窗口中将提示的一部分对齐到右侧,然后将实际的光标从第二行开始。我知道我可以在 PS1 中用 "\n" 实现第二行,但我不知道如何将它的一部分向右对齐。我看到的只是在两个字符串之间添加了空格吗?
我将我的主目录置于版本控制之下,这样我的基本配置就可以在任何计算机上轻松使用。
我的本地计算机上的 bash 命令提示符是一个复杂而多彩的东西,其中包括当前的 git 存储库及其状态。但是user@host ~ $当我ssh进入远程机器时,我宁愿有一个简单的命令提示符。
我希望能够更新我的,.profile以便它$PS1在本地运行时设置一个复杂的设置,并在ssh会话中运行时设置一个简化的设置。
基本上,我想$AM_I_LOGGED_IN_VIA_SSH在我的.profile. 那可能吗?
我试图将以下代码作为 powershell 脚本运行,但我无法让它工作。第一,以下适用于一个-Include项目,但我似乎无法让它与多个项目一起使用。2,-Exclude周边似乎不起作用。我仍然从C:\Windows和C:\Program Files目录中获取文件。
$Include = "*.zip","*.rar","*.tar","*.7zip"
$exclude = "C:\Windows","C:\Program Files"
Get-ChildItem "C:\" -Include $Include -Exclude $Exclude -Recurse -Force -ErrorAction silentlycontinue | Select-Object -ExpandProperty FullName
Run Code Online (Sandbox Code Playgroud)
注意:此脚本的目的是查找系统上的所有压缩文件。我知道这可能真的很简单,但我似乎无法让它发挥作用。
我写了以下 .ps1 文件:-
[System.Net.ServicePointManager]::ServerCertificateValidationCallback = {$true}
$request = [System.Net.WebRequest]::Create("https://localhost/")
$response = $request.GetResponse()
$response.Close()
Run Code Online (Sandbox Code Playgroud)
我在 windows server 2012 r2 任务调度程序中设置了一个任务,在 ps1 文件上方调用 te。现在我手动运行这个任务,但它一直显示“0x41301”,这意味着它仍在运行......虽然如果我直接运行PowerShell 窗口中的上述代码将在不到一秒的时间内结束?那么为什么使用任务 Schuler 调用这个 ps1 永远不会结束?
--编辑--这里是导出的XML:-
<?xml version="1.0" encoding="UTF-16"?>
<Task version="1.4" xmlns="http://schemas.microsoft.com/windows/2004/02/mit/task">
<RegistrationInfo>
<Date>2016-02-09T00:35:11.5514762</Date>
<Author>ad-services\user.service</Author>
</RegistrationInfo>
<Triggers>
<CalendarTrigger>
<Repetition>
<Interval>PT5M</Interval>
<Duration>PT30M</Duration>
<StopAtDurationEnd>false</StopAtDurationEnd>
</Repetition>
<StartBoundary>2016-02-09T19:30:01</StartBoundary>
<Enabled>true</Enabled>
<ScheduleByDay>
<DaysInterval>1</DaysInterval>
</ScheduleByDay>
</CalendarTrigger>
</Triggers>
<Principals>
<Principal id="Author">
<UserId>S-1-5-20</UserId>
<RunLevel>HighestAvailable</RunLevel>
</Principal>
</Principals>
<Settings>
<MultipleInstancesPolicy>IgnoreNew</MultipleInstancesPolicy>
<DisallowStartIfOnBatteries>true</DisallowStartIfOnBatteries>
<StopIfGoingOnBatteries>true</StopIfGoingOnBatteries>
<AllowHardTerminate>true</AllowHardTerminate>
<StartWhenAvailable>false</StartWhenAvailable>
<RunOnlyIfNetworkAvailable>false</RunOnlyIfNetworkAvailable>
<IdleSettings>
<StopOnIdleEnd>true</StopOnIdleEnd>
<RestartOnIdle>false</RestartOnIdle>
</IdleSettings>
<AllowStartOnDemand>true</AllowStartOnDemand>
<Enabled>true</Enabled>
<Hidden>false</Hidden>
<RunOnlyIfIdle>false</RunOnlyIfIdle>
<DisallowStartOnRemoteAppSession>false</DisallowStartOnRemoteAppSession>
<UseUnifiedSchedulingEngine>false</UseUnifiedSchedulingEngine>
<WakeToRun>false</WakeToRun>
<ExecutionTimeLimit>P3D</ExecutionTimeLimit>
<Priority>7</Priority>
</Settings> …Run Code Online (Sandbox Code Playgroud) 我怎样才能得到一个$PS1包含方框图的字符?
我正在运行 bash,如果它有所作为。
我不想等待缓慢的命令完成,而是想在后台运行它们。但是,当它们完成运行并打印到标准输出时,我得到(其中\xe2\x96\x88代表我的光标):
$ slowcmd &\n$ cmd_output\n\xe2\x96\x88\nRun Code Online (Sandbox Code Playgroud)\n\nslowcmd可以是任何慢速命令(对于我尝试过的东西,我只是说alias slowcmd=\'sleep 1 && echo cmd_output\')而我想要这样的东西:
\n\n$ slowcmd && redrawPromptString &\n$ cmd_output\n$ \xe2\x96\x88\nRun Code Online (Sandbox Code Playgroud)\n\n在命令输出之后,会为我打印出一个新的提示字符串。
\n\n我可以做些什么来实现redrawPromptString我想要的?我尝试过clear,kill $$将 a 发送^C到终端,最后printf "^C"(当然这不起作用)。我正在运行 bash。(GNU bash,版本 3.2.57)。
我的提示是这样的:
PS1="\[\033[32m\]\u@myserver\n\[\033[33m\w$\033[0m\] "
Run Code Online (Sandbox Code Playgroud)
因此,作为我ls后的输出,我看到了以下内容:
jake@myserver
~/public_html$
~/public_html$
Run Code Online (Sandbox Code Playgroud)
当我只应该(我认为)看到:
jake@myserver
~/public_html$
Run Code Online (Sandbox Code Playgroud)
颜色命令工作得很好(很漂亮),但是这个重复的线条让我发疯。我根据 Windows 版 MySysGit 附带的命令提示符改编了此命令提示符。
为什么会发生这种情况?
如果我只是在提示符下按回车键,它就会正确打印,而不会出现重复的第二行。复制仅发生在ls、cd或其他一些 bash 命令之后。
我目前有,PS1='\W'但是在符号链接目录中时,提示显示符号链接名称,如何让 PS1 显示原始目录名称?
我已设置PS1为以下值:
PS1="\033[0;37m[\033[1;33m\w\033[0;37m]\n\t \[[34m\]\u\033[0;37m@\[[34m\]\[[1m\]\h\[(B[m\] $"
Run Code Online (Sandbox Code Playgroud)
问题是任何跨越一行以上的命令都会循环并且不会生成新行。所以我覆盖了我已经输入的行。有什么问题PS1?
ps1 ×10
bash ×8
command-line ×5
powershell ×2
prompt ×2
bashrc ×1
cmd.exe ×1
script ×1
shell ×1
ssh ×1
terminal ×1
ubuntu-11.10 ×1