Bash: 構文エラー: 予期しないリダイレクト 質問する

Bash: 構文エラー: 予期しないリダイレクト 質問する

私はこれをスクリプトで実行します:

read direc <<< $(basename `pwd`)

そして次のようになります:

Syntax error: redirection unexpected

Ubuntuマシンで

/bin/bash --version
GNU bash, version 4.0.33(1)-release (x86_64-pc-linux-gnu)

別の SUSE マシンではこのエラーは発生しません。

/bin/bash --version
GNU bash, version 3.2.39(1)-release (x86_64-suse-linux-gnu)
Copyright (C) 2007 Free Software Foundation, Inc.

なぜエラーが発生するのでしょうか?

ベストアンサー1

スクリプトはハッシュバン行で/bin/bashまたは を参照していますか/bin/sh? Ubuntu のデフォルトのシステム シェルはbashではなくdashです。そのため、その場合、スクリプトは予想とは異なるシェルを使用します。dash にはリダイレクト演算子がありません。#!/bin/sh<<<

シェバン行が次のようになっていることを確認します:

#!/bin/bash

または

#!/usr/bin/env bash

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

$ ./script.sh

明示的に実行しないでくださいsh。そうすると、シェバンが無視されます。

$ 
   
    
     
    sh ./script.sh
   
       # Don't do this!

おすすめ記事