私はこれをスクリプトで実行します:
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!