1. 怎麼解釋shell命令行與shell腳本運行結果不同
看看你的用戶的默認shell是什麼
就是/etc/password的最後一列
root:x:0:0:root:/root:/bin/bash
然後在shell腳本第一行就寫上什麼shell
#!/bin/bash
應該就好了 試試吧
還有要注意標點符號是中文的還是英文的 是全形還是半形
2. 執行單個shell命令,和執行一個.sh的shell腳本的方法一樣嗎我用/bin/sh -c可以
執行腳本時,不要加-c sh test.sh 這樣就可以執行一個腳本
當執行系統的命令時,才會加-c
兩個不能同時存在。
3. 終端與Shell的區別與聯系是什麼
終端是設備,shell是程序。
終端有分模擬終端和真正終端。由於真正終端(用com口連接被控設備)市場上已經很少買了,因為很少人直接用終端接上設備了。一般都用模擬終端,比如telnet,ssh上去等等,目前有很多模擬終端的軟體,比如crt,和windows自帶的超級終端。
而shell是linux操作系統的一個人機界面的程序,相當於dos,它包含一些列對系統進行操作的命令。
4. /bin/sh+腳本和sh+腳本,這兩個腳本執行有什麼區別
絕大多數情況沒有區別,sh指的就是/bin/sh
但如果你的PATH變數設置特殊,導致使用了其他路徑的sh,那就存在不一樣行為的可能性。
5. 在終端中直接運行指令與放在腳本中運行指令, 運行結果不一樣
ls -l `which sh`
sh --version
看看輸出是什麼
估計和你當前用的 shell 命令行不是同一個 shell 解釋器。
寫 shell 腳本,記住一定要在最開始寫 #!/bin/bash 或者其他的解釋器,比如 csh、tsh。python、perl、php 都可以這么用,這樣你的腳本就制定了一個解釋器來運行。運行時不要用 sh xxx.sh ,而是賦予可運行許可權後 ./xxxx.sh 方式運行。
一般 Linux 下面的 /bin/sh 是一個鏈接,指向一個默認的 shell 解釋器,這個鏈接如果不是你需要的解釋器,那麼腳本運行出現任何問題都可能。如果系統裝了 busybox ,他也會提供一個 sh 解釋器,而且命令的文件名也是 sh ,他和 bash 運行結果也有區別,只是這個 sh 不一定在 /bin 裡面。
6. Mac OS 終端運行.sh腳本
1、編輯腳本文件。例如 test.sh 保存到 /Users/電腦用戶名/Documents 目錄下。內容:
echo "hello";
2、打開終端,運行 cd /Users/電腦用戶名/Documents 進入目錄;
3、直接運行 test.sh;
如果提示 -bash: test.sh: command not found 錯誤,設置 PATH :
export PATH=$PATH:/Users/電腦用戶名/Documents
有時候也會提示 -bash: test.sh: No such file or directory,同樣運行簽名的命令,設置PATH即可解決;
再次運行,在控制台就能看到 hello 了!
如果還不行,試試 chmod u+x test.sh 提升文件許可權後,再運行腳本。
7. shell和shell腳本 有什麼區別啊
從本質上說 沒有區別,如果硬要區分的話,可能shell更趨近於一段命令的解釋,而shell腳本無非就是把一些列命了整合成一個腳本,實現更復雜的功能。
8. linux下的shell命令,命令行,終端運行概念的解釋
Shell:
Shell是系統的用戶界面,提供了用戶與內核進行交互操作的一種介面。它接收用戶輸入的命令並把它送入內核去執行。
實際上Shell是一個命令解釋器,它解釋由用戶輸入的命令並且把它們送到內核。不僅如此,Shell有自己的編程語言用於對命令的編輯,它允許用戶編寫由shell命令組成的程序。Shell編程語言具有普通編程語言的很多特點,比如它也有循環結構和分支控制結構等,用這種編程語言編寫的Shell程序與其他應用程序具有同樣的效果。
命令行(命令提示符):
命令行一般指命令提示符。命令提示符是在操作系統中,提示進行命令輸入的一種工作提示符。在不同的操作系統環境下,命令提示符各不相同。
終端:
終端Terminal通常是指那些與集中式主機系統相連的「啞」用戶設備。終端從用戶接收鍵盤輸入,並且將這些輸入發送給主機系統。主機系統處理這個用戶的鍵盤輸入和命令,然後輸出返回並顯示在這個終端的屏幕上。
9. centos:在bash終端執行腳本,./script.sh和script.sh有何不同
1: 在終端執行script.sh,必須使用如下方式
要麼
./script.sh
要麼
sourcescript.sh
2: 如果想直接script.sh
使用pwd命令獲得script.sh的所在目錄路徑
將這個路徑添加到path, 那麼機器將自動在path環境變數中尋找script.sh的文件名,
使用/bin/bash script.sh的方式執行這個腳本,此時就可以不用加./了。
比如script.sh的全路徑為 /aa/bb/script.sh
執行PATH=/aa/bb:${PATH}
然後直接script.sh就可以運行了。