shell中對 bin sh的重新認識

2021-06-20 18:02:55 字數 777 閱讀 1425

開始的時候以為shell程式必須以"#!/bin/sh"開始,今天才明白什麼意思,失敗啊。。

雖然知道在shell中以"#"開始的語句都是注釋,開始認為"#!/bin/sh"也是注釋。

今天查了一下,才真正知道了"#!/bin/sh"。

shell程式設計是以"#"為注釋,但對"#!/bin/sh"卻不是。(以前修改過配置檔案的這個地方,當時覺得納悶呢,現在想想真挫啊)

"#!/bin/sh"是對shell的宣告,說明你所用的是那種型別的shell及其路徑所在。

如果沒有宣告,則指令碼將在預設的shell中執行,預設shell是由使用者所在的系統定義為執行shell指令碼的shell。

比如:如果指令碼被編寫為在korn linux中執行,而預設執行shell指令碼的為c shell csh,則上述指令碼在執行過程中很可能失敗。

建議"#!/bin/sh",寫shell必須有,以使shell程式更嚴密。

小例子:只顯示某個應用對應的log資訊,避免全部列印,不利於檢視;開發android應用,在除錯的時候非常有用。

packagename=$com.example.abc

pid=`adb shell ps | grep $packagename | awk ''`

adb logcat | grep --color=auto $pid

開始的時候加入了"#!/bin/sh",總是提示./check.sh: no such file or directory,去掉之後便可以執行了。

重新編譯ORACLE中的INVALID物件

set heading off set feedback off set echo off set lines 999 spool run invalid.sql select alter object type owner object name compile from dba objects ...

如何對JS中物件的屬性重新(強制)賦值

var resultdata js中的物件 後面使用的,後面使用的資料都從這裡取出 使用陣列型別,因為js是弱語言 var obj 自定義乙個物件 obj.ajaxecode obj物件的引數,賦值 obj.ajaxemsg resultdata.push obj 把obj放入陣列中 後續操作都從r...

對fft迴圈移位的重新理解

對一組序列做fft變換。從表面上看,他們是無差別的。但是還是分為很多的類。任何東西都可以分類。當你發現都是一樣的時候,說明你還沒有進入他的核心。在談及fft變換之前,先看看fft變換的物件的性質。任何的序列都可以用實數和虛數表示。所以任何序列從某個角度上來劃分,可以分為純實數序列,純虛數序列和雜交的...