Sed 用法:添加脚本第一行缺少的 shebang

Sed 用法:添加脚本第一行缺少的 shebang

我的*.sh脚本缺少第一行的 shebang。我可以用 修复它sed吗?

答案1

使用, in place 操作插入 ( i) shebang :sed

sed -i '1 i #!/bin/bash' file.sh

备份带有.bak扩展名的原始文件:

sed -i.bak '1 i #!/bin/bash' file.sh

替换#!/bin/bash为您想要的实际 shebang。

例子:

% cat foo.sh
echo foobar

% sed '1 i #!/bin/bash' foo.sh 
#!/bin/bash
echo foobar

答案2

使用bashand cat(非就地):

cat <(echo '#!/bin/sh') foo.sh

或者就地使用 GNU awk >= 4.1:

awk -i inplace 'BEGINFILE{print "#!/bin/sh"}{print}' foo.sh

相关内容