私の*.sh
スクリプトにShebangの最初の行はありません。で修正できますかsed
?
答え1
i
シャバンを挿入するには、in place操作を使用します。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
とcat
(非位置):
cat <(echo '#!/bin/sh') foo.sh
またはGNU awk> = 4.1を使用してください。
awk -i inplace 'BEGINFILE{print "#!/bin/sh"}{print}' foo.sh