1. ホーム
  2. bash

[解決済み] Bashです。構文エラー: リダイレクトが予想外

2022-04-20 09:22:51

質問

スクリプトでやっています。

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.

なぜエラーになるのですか?

解決方法は?

あなたのスクリプトは /bin/bash または /bin/sh をそのハッシュバングラインに入れるか?Ubuntuのデフォルトのシステムシェルは ダッシュ ではなく バッシュ ということで、もし #!/bin/sh の場合、スクリプトはあなたが期待するのとは異なるシェルを使用することになります。Dash は <<< リダイレクト演算子

shebangの行を確認します。

#!/bin/bash

または

#!/usr/bin/env bash

で、スクリプトを実行します。

$ ./script.sh

行う ない を明示的に指定して実行します。 sh を無視することになります。

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