最初の引数でファイルを開くことはできません。

最初の引数でファイルを開くことはできません。

次のスクリプトを実行しようとしています。

./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です。zshashdashyashいいえロゴの周りにスペースがあります=

file=$1

file = $1rc割り当てはシェルでまたはでes有効ですakanga。別の構文がcshありますtcshset file = $1:qandをfish使用してくださいset file $argv[1]

関連情報