Linux-#!/bin/sh理解 & 終端執行可執行文件解釋


#!是一個特殊符號,/bin/sh是用來解釋該腳本的的shell路徑

#!/bin/sh指該腳本使用/bin/sh來執行

sh只是其中一種解釋方式,通過如下命令可以查到支持的shell解釋方式:

xx@xxx$ sudo cat /etc/shells
# /etc/shells: valid login shells
/bin/sh
/bin/bash
/bin/rbash
/bin/dash

區別在於當用sh解釋時,當source命令執行有問題時,sh不再往下執行;

但用bash時,bash會繼續執行之后的命令。

當沒有加#!+shell解釋器時,腳本會默認當前用戶登錄的shell為腳本解釋器,通常為bash


在終端下要執行一個可執行文件,直接輸入它的文件名+路徑就好了。

之前一直看到輸入比如./test,用於執行當前目錄下的test文件,一直以為./是執行指令。

現在才知道原來./test的./是為了承接現在所在的文件夾,讓現在所在的文件夾+文件,合並成該文件的完整路徑,用於執行。

如果非要在執行命令前加上一些指令用於執行,那就只能是bash/sh

ly@ubuntu:~/Desktop/sutest$ ./test
fail to read: Permission denied
ly@ubuntu:~/Desktop/sutest$ test
ly@ubuntu:~/Desktop/sutest$ which test  //因為這里執行的是/usr/bin/test,所以不會有當前路徑下的test的正確輸出
/usr/bin/test

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM