다음과 같은 스크립트를 실행하려고 합니다.
./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 = $1
rc
할당은 셸에서 또는 으로 es
유효합니다 akanga
. 또 다른 구문이 csh
있습니다 tcsh
: set file = $1:q
and 를 fish
사용합니다 set file $argv[1]
.