我想运行这个脚本:
#!/bin/bash
echo <(true)
我将其视为:
sh file.sh
我得到&#34; Syntax error: "(" unexpected
&#34; 。我发现了一些类似的情况,但仍然无法解决这个问题。
我是shell脚本的初学者,但据我所知:
echo $0
,它给了我&#34; bash
&#34;那么在命令行和调用同一个shell的脚本中运行命令的区别是什么?也许它很简单,但我无法找到解释或解决方案。
答案 0 :(得分:5)
您应该使用bash
运行脚本,即bash ./script.sh
或在将./script.sh
设置为可执行文件后使用shebang。只有sh ./script.sh
运行才会出现错误,正如Cyrus评论的那样。
答案 1 :(得分:0)
从export POSIXLY_CORRECT=1
或~/.bashrc
(等)文件中删除~/.profile
。
问题在于,流程替换是bash的一项新增功能,不属于posix标准。