콘텐츠로 이동

sh - POSIX 쉘

POSIX 쉘(sh)은 IEEE POSIX.1 표준에 의해 정의된 유닉스 쉘 프로그래밍의 표준 기반을 나타냅니다. 유닉스와 같은 시스템의 맞은편에 가장 휴대용 및 넓게 유효한 포탄으로, sh는 포탄 스크립팅을 위한 기초를 형성하는 근본적인 특징 및 구문을 제공합니다. Bash 및 Zsh와 같은 현대 쉘은 광범위한 향상을 제공합니다. POSIX sh는 임베디드 장치에서 엔터프라이즈 서버에 이르기까지 다양한 시스템에서 작동하는 휴대용 스크립트를 작성하는 데 중요합니다. POSIX 쉘은 최대 호환성을 보장하며 다양한 유닉스 환경에서 쉘 프로그래밍을 위한 일반적인 디노미네이터 역할을 합니다.

사이트맵 포탄 기초

POSIX 이해 견적 요청

카지노사이트

기초 포탄 Invocation

카지노사이트

Shell 옵션 및 설정

카지노사이트

변수 및 매개 변수 확장

변하기 쉬운 할당 및 사용법

카지노사이트

모수 확장

카지노사이트

환경 변수

카지노사이트

명령 실행 및 헌법

명령 대체

카지노사이트

명령 실행

카지노사이트

파이프 라인 및 Redirection

카지노사이트

통제 구조

조건 선언문

카지노사이트

파일 테스트 연산자

ο 회원 관리

Logical 연산자

카지노사이트

사례 문

카지노사이트

반복 및 반복

루프

카지노사이트

반복하는 동안

카지노사이트

루프까지

카지노사이트

루프 제어

카지노사이트

제품정보

기능 정의 및 사용법

카지노사이트

기능 모범 사례

카지노사이트

기능 Libraries

오프화이트

Arithmetic 가동

POSIX Arithmetic 확장

카지노사이트

외부 Arithmetic 회사 소개

오프화이트

입력 및 출력

독서 입력

카지노사이트

산출 Formatting

카지노사이트

파일 작업

카지노사이트

오류 처리 및 디버깅

종료 상태 및 오류 검사

카지노사이트

오류 처리 패턴

카지노사이트

Debugging 기술

카지노사이트

스크립트 구조 및 모범 사례

스크립트 템플릿

```sh

!/bin/sh

Script description

Author: Your Name

Date: YYYY-MM-DD

Version: 1.0

Exit on error

set -e

Global variables

SCRIPT_NAME=$(basename "$0") SCRIPT_DIR=$(dirname "$0") VERSION="1.0"

Functions

usage() \\{ cat << EOF Usage: $SCRIPT_NAME [OPTIONS] [ARGUMENTS]

Description of what the script does.

OPTIONS: -h, --help Show this help message -v, --version Show version information -d, --debug Enable debug mode

ARGUMENTS: file Input file to process

EXAMPLES: $SCRIPT_NAME input.txt $SCRIPT_NAME -d input.txt

EOF \\}

version() \\{ echo "$SCRIPT_NAME version $VERSION" \\}

main() \\{ # Parse command line arguments while [ $# -gt 0 ]; do case $1 in -h|--help) usage exit 0 ;; -v|--version) version exit 0 ;; -d|--debug) DEBUG=1 set -x shift ;; -) echo "Error: Unknown option $1" >&2 usage >&2 exit 1 ;; ) break ;; esac done

# Validate arguments
if [ $# -eq 0 ]; then
    echo "Error: No input file specified" >&2
    usage >&2
    exit 1
fi

input_file="$1"

# Validate input file
if [ ! -f "$input_file" ]; then
    echo "Error: File '$input_file' does not exist" >&2
    exit 1
fi

# Main script logic
echo "Processing file: $input_file"
# Add your code here

echo "Script completed successfully"

\\}

Run main function with all arguments

main "$@" ```의 경우

관할권

```sh

Use POSIX-compliant constructs

[ condition ] instead of [[ condition ]] $(command) instead of command $((arithmetic)) instead of $[arithmetic]

Avoid bash-specific features

No: array=(element1 element2)

Yes: Use space-separated strings or multiple variables

No: [[ string =~ regex ]]

Yes: Use case or expr for pattern matching

No: $\\{parameter,,\\} (lowercase)

Yes: Use tr or awk for case conversion

Portable shebang

!/bin/sh # Most portable

!/usr/bin/env sh # Alternative

Check for required commands

| command -v required_command >/dev/null 2>&1 | | \\{ | echo "Error: required_command is not installed" >&2 exit 1 \\}

Portable temporary files

temp_file="$\\{TMPDIR:-/tmp\\}/script.$" trap 'rm -f "$temp_file"' EXIT ```에 대하여

보안 모범 사례

```sh

Quote variables to prevent word splitting

rm "$filename" # Correct rm $filename # Dangerous

Validate input

case $input in [a-zA-Z0-9_-]) # Valid input ;; ) echo "Invalid input" >&2 exit 1 ;; esac

Use full paths for commands in scripts

/bin/rm "$file" /usr/bin/find "$dir" -name "*.tmp"

Set secure umask

umask 077 # Restrictive permissions

Avoid eval with user input

eval "$user_input" # Dangerous

Use case statements or functions instead

Handle signals properly

cleanup() \\{ rm -f "$temp_file" exit 1 \\} trap cleanup INT TERM ```의 경우

POSIX 쉘은 유닉스와 같은 시스템에서 쉘 스크립트를 위한 유니버셜 기반 역할을 하며, 최대 포용성을 유지하면서 필수적인 기능을 제공합니다. 표준화 된 구문 및 기능으로 POSIX sh에 쓰여진 스크립트는 최소 임베디드 시스템에서 대형 기업 서버에 이르기까지 다양한 플랫폼에서 일관되게 작동합니다. 현대 쉘의 고급 기능이 부족하지만, POSIX sh을 이해하는 것은 다양한 컴퓨팅 환경에서 시간과 작업이 안정적으로 수행되는 견고한 휴대용 쉘 스크립트를 작성하는 데 필수적입니다.