에코에서 줄 바꿈 방지
에는 "PowerShell"이 되어 있습니다.echo
명령은 항상 새 줄을 추가합니다.유닉스에 해당하는 것은 무엇입니까?echo -n
?
echo
는 의 별칭입니다.Write-Output
파이프라인의 다음 명령으로 객체를 전송합니다.콘솔에 텍스트만 표시하려는 경우 다음 작업을 수행할 수 있습니다.
Write-Host "Hi" -NoNewLine
이 cmdlet은 echo|와 동일한 cmdlet이 아닙니다.쓰기-출력.
Write-Output
의 주요 목적은 파이프라인의 다음 명령으로 객체를 보내는 것입니다.Write-Host
의 기본 목적은 콘솔에 텍스트를 표시하는 것입니다.는 다을사텍콘스표이유시는되가트솔입니다.Write-Output
, 은 모든 을 즉, PowerShell 전것송다로 합니다.Out-Default
수신을 PowerShell 개체에서 텍스트 형식 지정 엔진으로 보내는 파이프라인의 끝에 있습니다.
다음은 예입니다.
Write-Host "hi" | Get-Member
다음과 같은 이유로 오류가 발생합니다.Write-Host
는 텍스트를 콘솔에 쓰기만 하고 파이프라인의 다음 명령으로 문자열을 전달하지 않습니다.
Write-Output "hi" | Get-Member
그면다표다니됩이 됩니다.System.String
특성과 방법은 다음과Write-Output
합니다.string
파이프라인의 다음 개체에 대한 개체입니다.
Write-Host
: http://technet.microsoft.com/en-us/library/dd347596.aspxWrite-Output
: http://technet.microsoft.com/en-us/library/dd315282.aspx
사용할 수 있습니다.Write-Host
:
Write-Host "Hello " -nonewline
Write-Host "There!"
또는 명령줄에서:
PS C:\> Write-Host "Hello " -nonewline ; Write-Host "There!"
Hello There!
Andy Arismendi의 유용한 답변을 보완하기 위해:
시에서바에서,
echo -n
그 등가물, (또는휴대등가물용,등물가또),printf %s
)는 인수를 데이터(출력) 스트림인 stdout으로 보냅니다.PowerShell의 Unix stdout 스트림에 해당하는 것은 성공 스트림으로, 기본적으로 명령 출력이 사용됩니다.
PowerShell은 텍스트뿐만 아니라 모든 유형의 개체를 성공 스트림으로 전송할 수 있습니다.따라서 엄밀히 말하면, 바시의 것과 동등한 것입니다.
echo -n 'hi'
를 들어,는 그냥 예들어다, 정니합당는입니다.'hi'
PowerShell - 문자열이 암묵적으로 성공 스트림으로 전송됩니다.즉, 콘솔에 줄 바꿈이 없는 문자열을 보내는 유일한 방법은 성공 스트림을 우회하는 것입니다. 이는 앤디의 답변에서 논의된 것과 같습니다.
PowerShell v4까지 ,
Write-Host
PowerShell의 출력 스트림을 모두 무시하고 콘솔에 직접 인쇄하기 때문에 출력을 전혀 캡처할 수 없었습니다., PowerShell v5 버전
Write-Host
구조화된 정보를 쓰기 위해 새로 도입된 스트림에 쓰기, 번호6
그리고 사실상 의 별칭입니다.
Write-Information -InformationAction Continue
을 보다
파일 쓰기와 관련하여 PowerShell v5는 다음 cmdlet에 매개 변수에 대한 지원을 추가했습니다(v4까지, 텍스트 파일에 쓰기/추가할 경우 항상 뒤에 새 줄이 추가됨).
-NoNewLine
또한 입력 사이에 새 줄을 배치하지 않습니다. 여러 개가 있는 경우:Set-Content
/Add-Content
Out-File
여러 명령의 출력을 출력 스트림의 한 줄 문자열에 쓰는 방법:
해결 방법은 문자열 보간 또는 연결 또는 형식을 사용하여 출력 텍스트의 단일 행을 구성해야 하는 모든 명령의 출력을 결합하는 것입니다.
예를 들어, 다음 Bash 코드에 해당하는 (대략)...
#!/bin/bash
echo -n 'Today is: '
date
PowerShell의 기능:
확장 가능한 문자열 사용(문자열 보간, 내부)
"..."
연산자 사용하기$(...)
):"Today is: $(Get-Date)"
또는 문자열 연결 사용, 연산자 사용
+
:'Today is: ' + (Get-Date)
는또, 용사를
-f
(string-) 형식 연산자:'Today is: {0}' -f (Get-Date)
이러한 모든 PowerShell 명령은 성공 스트림에 한 줄의 문자열을 전송하지만 콘솔에서 인쇄할 때 이 문자열 자체에 항상 새 줄이 따라옵니다.
Write-Host -n
PowerShell 5에서 작동합니다.
언급URL : https://stackoverflow.com/questions/9280591/avoid-newline-in-echo
'programing' 카테고리의 다른 글
SQL Server Management Studio를 사용하여 BLOB를 데이터베이스에 삽입하는 방법 (0) | 2023.08.20 |
---|---|
jooq jsonArrayAgg 쿼리 mariadb/mysql은 항상 "SQL 구문의 오류" 예외를 받습니다. (0) | 2023.08.20 |
jQuery를 사용하여 텍스트 영역 자동 확장 (0) | 2023.08.20 |
MySQL 워크벤치 대 phpMyAdmin (0) | 2023.07.31 |
Node.js 인증마다 사용할 환경별 구성 설정 (0) | 2023.07.31 |