我有一个shell脚本在这里在线上可以运行,但是在本地终端上无法运行。可能的原因是什么?我应该如何调试?
#!/bin/bash
string='internal func add() -> Int'
sed -e '
s/^.*func \+//
s/ *\->.*$//
s/:[^,)]\+/:/g
s/[, ]//g
' <<< "$string"
echo $SHELL
对于在shell脚本中出现的输入,我在本地计算机上得到了internalfuncadd()
,而在线上正确的输出结果应该是add()
。
dos2unix
。您使用sed
的方式对行终止符很敏感。 - Jean-François Fabredos2unix fnmod.sh
,其中fnmod.sh
是此脚本的文件名。输出保持不变。 - prabodhprakashecho $SHELL
时,我得到的是/bin/zsh/
而不是在线上得到的/bin/sh/
,这可能是问题吗?如何强制它在/bin/sh
上运行? - prabodhprakash