我在脚本中执行此操作:
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 中的默认系统 shell 是dash,而不是bash,所以如果你有,#!/bin/sh那么你的脚本将使用与你预期不同的 shell。Dash 没有<<<重定向运算符。
/bin/bash
/bin/sh
#!/bin/sh
<<<
确保 shebang 线是:
#!/bin/bash
或者
#!/usr/bin/env bash
并使用以下命令运行脚本:
$ ./script.sh
不要以显式 方式 运行它,sh因为这将忽略 shebang:
sh
$ ~~sh ./script.sh~~ # Don't do this!