첫 번째 인수로 파일을 열 수 없습니다.

첫 번째 인수로 파일을 열 수 없습니다.

다음과 같은 스크립트를 실행하려고 합니다.

./script.sh file

하지만 다음과 같은 메시지가 표시됩니다(txt 파일을 사용하는 경우).

=:        cannot open `=' (No such file or directory)
test.txt: ASCII text
Second

gz 파일을 사용하는 경우:

=:           cannot open `=' (No such file or directory)
test.txt.gz: gzip compressed data, was "test.txt", last modified: Wed Jul 20 09:17:58 2016, from Unix
Second

(내 스크립트와 파일은 같은 디렉토리에 있습니다)

스크립트:

#!/bin/bash

file = $1

if [[ $file == *.gz ]];then

    echo "First"
else
    echo "Second"

fi

답변1

file = $1

file명령을 첫 번째 인수로 실행 =하고 분할+glob 연산자의 결과를 스크립트의 첫 번째 인수에 나머지 인수로 적용합니다.

Bourne과 유사한 쉘(예 bash: , ksh, zsh, ash/ dash, yash)에서 변수 할당은 다음과 같습니다.아니요로고 주위에 공백이 있습니다 =.

file=$1

file = $1rc할당은 셸에서 또는 으로 es유효합니다 akanga. 또 다른 구문이 csh있습니다 tcsh: set file = $1:qand 를 fish사용합니다 set file $argv[1].

관련 정보