bash 쉘에서 $()와 ${} 및 $(())와 (())를 구별하는 방법
bash 쉘에서는 $( ) 및 ` `(백틱)이 명령 대체에 사용됩니다. 그리고 $()는 모든 쉘에서 사용할 수 있습니다. bash2를 사용하면 문제가 없습니다...
${ }를 보세요...실제로 변수 치환에 사용됩니다. 일반적으로 $var와 ${var} 사이에는 차이가 없습니다. 그러나 ${ }를 사용하면 변수 이름의 범위를 더 정확하게 정의할 수 있습니다.
${ }의 일부 특수 기능을 설명하기 위해 몇 가지 예를 사용하겠습니다.
변수를 다음과 같이 정의한다고 가정해 보겠습니다.
파일=/dir1/dir2/dir3/my.file.txt
${ }를 사용하여 각각을 대체하여 다른 값을 얻을 수 있습니다.
${file#*/}: 첫 번째 /와 왼쪽 문자열을 제거합니다: dir1/dir2/dir3/my.file.txt
${file##*/}: 마지막 / 및 왼쪽 문자열 제거: my.file.txt
${file#*.}: 첫 번째 . 및 왼쪽 문자열을 제거합니다: file.txt
${file##*.}: 마지막 . 및 왼쪽 문자열을 제거합니다: txt
${file%/*}: 마지막 /와 오른쪽 문자열을 제거합니다: /dir1/dir2/dir3
${file%%/*}: 첫 번째 /와 오른쪽 문자열을 제거합니다: (null 값)
${file%.*}: 마지막 . 및 오른쪽 문자열을 제거합니다: /dir1/dir2/dir3/my.file
${file%%.*}: 첫 번째 . 및 오른쪽 문자열을 제거합니다: /dir1/dir2/dir3/my
#은 왼쪽을 없애는 것입니다(#은 감정판 $의 왼쪽에 있습니다)
%는 오른쪽을 제거한다는 의미입니다(%는 보드에서 $의 오른쪽에 있습니다)
단일 기호는 최소 일치이고 두 기호는 최대 일치입니다.
${file:0:5}: 가장 왼쪽 5바이트 추출: /dir1
${file:5:5}: 5번째 바이트 오른쪽에 있는 연속 5바이트를 추출합니다: /dir2
변수 값의 문자열을 바꿀 수도 있습니다:
${file/dir/path}: 첫 번째 디렉토리를 path:/
로 바꿉니다.경로1/dir2/dir3/my.file.txt
${file//dir/path}: 모든 디렉토리를 경로:/
로 바꿉니다.경로1/경로2/경로3/my.file.txt
${ }를 사용하여 다양한 변수 상태(설정되지 않음, null 값, null이 아닌 값)에 값을 할당합니다.
${file-my.file.txt}: $file이 설정되지 않은 경우 my.file.txt를 반환 값으로 사용합니다. (Null 값과 null이 아닌 값은 처리되지 않습니다)
${file:-my.file.txt}: $file이 설정되지 않았거나 비어 있는 경우 my.file.txt를 반환 값으로 사용합니다. (null이 아닌 값은 처리되지 않습니다)
${file+my.file.txt}: $file이 null 값 또는 null이 아닌 값으로 설정된 경우 my.file.txt가 반환 값으로 사용됩니다. (미설정시 처리가 되지 않습니다)
${file:+my.file.txt}: $file이 비어 있지 않은 값인 경우 my.file.txt를 반환 값으로 사용합니다. (설정이 없거나 값이 비어 있으면 처리가 수행되지 않습니다)
${file=my.file.txt}: $file이 설정되지 않은 경우 my.file.txt를 반환 값으로 사용하고 $file을 my.file.txt에 할당합니다. (Null 값과 null이 아닌 값은 처리되지 않습니다)
${file:=my.file.txt}: $file이 설정되지 않았거나 비어 있는 경우 my.file.txt를 반환 값으로 사용하고 $file을 my.file.txt에 할당합니다. (null이 아닌 값은 처리되지 않습니다)
${file?my.file.txt}: $file이 설정되지 않은 경우 my.file.txt를 STDERR로 출력합니다. (Null 값과 null이 아닌 값은 처리되지 않습니다)
${file:?my.file.txt}: $file이 설정되지 않았거나 비어 있는 경우 my.file.txt를 STDERR로 출력합니다. (null이 아닌 값은 처리되지 않습니다)
위의 이해는 unset, null, non-null의 세 가지 할당 상태를 명확하게 구분해야 한다는 것입니다.
일반적으로 :은 null과 관련이 있습니다. :이 포함되어 있지 않으면 null은 영향을 받지 않습니다. :이 포함되어 있으면 null도 영향을 받습니다.
또한 ${#var}는 변수 값의 길이를 계산할 수 있습니다.
${#file}은 /dir1/dir2/dir3/my.file.txt가 정확히 27바이트이기 때문에 27이 됩니다...
정수 연산에 사용됩니다.
Bash에서 $(( ))의 정수 산술 기호는 대략 다음과 같습니다.
+ - * /: 각각 "덧셈, 뺄셈, 곱셈, 나눗셈".
%: 나머지 연산
& | ^ !: 각각 "AND, OR, XOR, NOT" 연산.
예:
왕nc>a=5;b=7;c=2;
wangnc>echo $a + $b
5 + 7
wangnc>echo $(( a + b*c))
19
wangnc>echo $(((a*b)/c))
17
wangnc>echo $(($a +$b*$c))
19
왕nc>
$(( ))의 변수 이름은 앞에 $ 기호를 추가하여 바꾸거나 다음과 같이 $ 기호 없이 바꿀 수 있습니다.
$(( $a + $b * $c)) 는 19의 결과도 얻을 수 있습니다
또한 $(( ))는 다른 캐리 수(예: 2진수, 8진수, 16진수)를 사용하여 연산을 수행할 수도 있지만 출력 결과는 모두 10진수입니다.
echo $((16#2a)) 결과는 42입니다(16진수에서 10진수)
(()) 목적:
실제로 단순히 (( ))를 사용하여 변수 값을 재정의하거나 테스트를 수행할 수도 있습니다.
a=5; ((a++))는 $a를 6으로 재정의합니다
a=5; ((a--)) 그러면 a=4
a=5; b=7; ((a
(( ))에 대한 일반적인 테스트 기호는 다음과 같습니다.
<:>: 보다 큼
=:
보다 크거나 같음==:
과 동일!=:
와 같지 않음위 내용은 bash 쉘에서 $()와 ${} 및 $(())와 (())를 구별하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

장치 드라이버를 처리 할 때 Linux와 Windows의 차이점은 주로 운전자 관리 및 개발 환경의 유연성에 반영됩니다. 1. Linux는 모듈 식 설계를 채택하며 드라이버를 동적으로로드하고 제거 할 수 있습니다. 개발자는 커널 메커니즘을 심층적으로 이해해야합니다. 2. Windows는 Microsoft Ecosystem에 의존하며 운전자는 WDK를 통해 개발하고 서명 및 인증을 받아야합니다. 개발은 비교적 복잡하지만 시스템의 안정성과 보안을 보장합니다.

Linux와 Windows의 보안 모델에는 각각 고유 한 장점이 있습니다. Linux는 유연성 및 사용자 정의 가능성을 제공하여 사용자 권한, 파일 시스템 권한 및 Selinux/Apparmor를 통해 보안을 가능하게합니다. Windows는 사용자 친화성에 중점을두고 WindowsDefender, UAC, 방화벽 및 Bitlocker에 의존하여 보안을 보장합니다.

Linux와 Windows는 하드웨어 호환성이 다릅니다. Windows는 광범위한 드라이버 지원이 있으며 Linux는 커뮤니티 및 공급 업체에 따라 다릅니다. Linux 호환성 문제를 해결하려면 RTL8188EU 드라이버 리포지토리 복제, 컴파일 및 설치와 같은 드라이버를 수동으로 컴파일 할 수 있습니다. Windows 사용자는 성능을 최적화하기 위해 드라이버를 관리해야합니다.

가상화 지원에서 Linux와 Windows의 주요 차이점은 다음과 같습니다. 1) Linux는 KVM과 Xen을 제공하며, 높은 커스터마이징 환경에 적합한 뛰어난 성능과 유연성을 제공합니다. 2) Windows는 친숙한 인터페이스를 통해 Hyper-V를 통한 가상화를 지원하며 Microsoft 소프트웨어에 의존하는 기업에 적합한 Microsoft Ecosystem과 밀접하게 통합됩니다.

Linux 시스템 관리자의 주요 작업에는 시스템 모니터링 및 성능 조정, 사용자 관리, 소프트웨어 패키지 관리, 보안 관리 및 백업, 문제 해결 및 해상도, 성능 최적화 및 모범 사례가 포함됩니다. 1. 상단, HTOP 및 기타 도구를 사용하여 시스템 성능을 모니터링하고 조정하십시오. 2. 사용자 ADD 명령 및 기타 명령을 통해 사용자 계정 및 권한을 관리합니다. 3. APT 및 YUM을 사용하여 소프트웨어 패키지를 관리하여 시스템 업데이트 및 보안을 보장합니다. 4. 방화벽을 구성하고 로그를 모니터링하고 데이터 백업을 수행하여 시스템 보안을 보장합니다. 5. 로그 분석 및 공구 사용을 통해 문제를 해결하고 해결합니다. 6. 커널 매개 변수 및 응용 프로그램 구성을 최적화하고 모범 사례를 따라 시스템 성능 및 안정성을 향상시킵니다.

Linux를 배우는 것은 어렵지 않습니다. 1.Linux는 UNIX를 기반으로 한 오픈 소스 운영 체제이며 서버, 임베디드 시스템 및 개인용 컴퓨터에서 널리 사용됩니다. 2. 파일 시스템 및 권한 관리 이해가 핵심입니다. 파일 시스템은 계층 적이며 권한에는 읽기, 쓰기 및 실행이 포함됩니다. 3. APT 및 DNF와 같은 패키지 관리 시스템은 소프트웨어 관리를 편리하게 만듭니다. 4. 프로세스 관리는 PS 및 최고 명령을 통해 구현됩니다. 5. MKDIR, CD, Touch 및 Nano와 같은 기본 명령에서 학습을 시작한 다음 쉘 스크립트 및 텍스트 처리와 같은 고급 사용법을 사용해보십시오. 6. 권한 문제와 같은 일반적인 오류는 Sudo 및 CHMod를 통해 해결할 수 있습니다. 7. 성능 최적화 제안에는 HTOP을 사용하여 리소스 모니터링, 불필요한 파일 청소 및 SY 사용이 포함됩니다.

Linux 관리자의 평균 연봉은 미국에서 $ 75,000 ~ $ 95,000, 유럽에서는 40,000 유로에서 60,000 유로입니다. 급여를 늘리려면 다음과 같이 할 수 있습니다. 1. 클라우드 컴퓨팅 및 컨테이너 기술과 같은 새로운 기술을 지속적으로 배울 수 있습니다. 2. 프로젝트 경험을 축적하고 포트폴리오를 설정합니다. 3. 전문 네트워크를 설정하고 네트워크를 확장하십시오.

Linux의 주요 용도에는 다음이 포함됩니다. 1. 서버 운영 체제, 2. 임베디드 시스템, 3. 데스크탑 운영 체제, 4. 개발 및 테스트 환경. Linux는이 분야에서 뛰어나 안정성, 보안 및 효율적인 개발 도구를 제공합니다.


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

Dreamweaver Mac版
시각적 웹 개발 도구

VSCode Windows 64비트 다운로드
Microsoft에서 출시한 강력한 무료 IDE 편집기

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

안전한 시험 브라우저
안전한 시험 브라우저는 온라인 시험을 안전하게 치르기 위한 보안 브라우저 환경입니다. 이 소프트웨어는 모든 컴퓨터를 안전한 워크스테이션으로 바꿔줍니다. 이는 모든 유틸리티에 대한 액세스를 제어하고 학생들이 승인되지 않은 리소스를 사용하는 것을 방지합니다.

드림위버 CS6
시각적 웹 개발 도구
