我的*.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
使用bash
and cat
(非就地):
cat <(echo '#!/bin/sh') foo.sh
或就地使用 GNU awk >= 4.1:
awk -i inplace 'BEGINFILE{print "#!/bin/sh"}{print}' foo.sh