㈠ mysql中有和Oracle中的nvl2(expr1,expr2,expr3)效果一樣的函數么
IFNULL(expr1,expr2)
如果expr1不是NULL,IFNULL()返回expr1,否則它返回expr2。IFNULL()返回一個數字或字元串值,取決於它被使用的上下文環境。
㈡ MySQL中if(expr1 is null,1024,expr) as expr,這句代碼是什麼意思
if (邏輯表達式, 為真時的取值, 為假時的取值)
if(expr is null,1024,expr) 表示當expr為null時, 取值為1024, 否則為本身
㈢ 游戲驛站股票被禁止開倉,股票中的開倉是什麼意思
個股方面,游戲驛站GME盤中再度停牌,後恢復交易,此前一度漲超30%,市值超300億美元,隨後漲幅收窄,截至北京時間28日晚11點45分,GME股價下跌超13%。而AMC院線(AMC.US)股價則跌超61%。互聯網券商富途控股發布通知稱,因上游限制,GME、AMC股票已被禁止開倉(平倉不受影響),美國本土多家券商也禁止了部分此類股票的開倉交易。受此影響,相關股票承壓下挫。目前在Robinhood無法交易,據報道,美國在線券商Robinhood已經關閉了游戲驛站(GME)、AMC院線(AMC)和諾基亞(NOK)的股票買賣。
所謂買入開倉是指投資者對未來價格趨勢看漲而採取的一種交易手段,會直接買入看漲合約,等待價格上漲之後再進行賣出平倉,從而賺取差價。賣出開倉就是指對未來價格趨勢看跌,這種情況下會對現有的倉位進行平倉處理,也就是將原來買進的看漲合約賣出,資金賬戶解凍,從而控制風險。
㈣ jquery 自定義選擇器中 $.expr[':'] 這句代碼是什麼意思,請高手詳細介紹一下
定義偽類選擇器。
定義:
$.expr[':']['add'] = function(elem){
return $(elem).index()+1;
}
使用:
$('ul li:add')
例子瞎想的、
---來自青豆前端
㈤ #define assert_param(expr) ((void)0) 這是個宏定義,但是我真是不知道(void)0能執行什麼操作
這是斷言機制。意思是在關閉斷言的情況下,
void MY_NVIC_SetVectorTable(u32 NVIC_VectTab,u32 Offset)
{
assert_param(IS_NVIC_VECTTAB(NVIC_VectTab));
assert_param(IS_NVIC_OFFSET(Offset));
SCB->VTOR=NVIC_VectTab|(Offset&(u32)0x1FFFFF80);
}
就相當於:
void MY_NVIC_SetVectorTable(u32 NVIC_VectTab,u32 Offset)
{
(void)0; // 不執行任何操作,對程序也沒有副作用
(void)0; // 不執行任何操作,對程序也沒有副作用
SCB->VTOR=NVIC_VectTab|(Offset&(u32)0x1FFFFF80);
}
由於你的這個斷言沒貼完整,我就拿VC++6.0下的斷言來說明把。
在VC++6.0下的assert.h中:
#ifdef NDEBUG
#define assert(exp) ((void)0)
#else
#define assert(exp) (void)( (exp) || (_assert(#exp, __FILE__, __LINE__), 0) )
如果你寫的代碼中使用了斷言,比如:
assert(i>=0);
那麼這句的在程序中的作用分兩種情況:
1. 若果在assert.h被包含之前NDEBUG這個宏未定義,assert(exp) 就被定義為(void)( (exp) || (_assert(#exp, __FILE__, __LINE__), 0) )。這樣當i<0時,i>=0這個表達式為假,所以程序就會終止。並通知程序員發生錯誤的文件位置和代碼行。但是錯誤信息僅僅對程序員有用。對用戶來說,程序異常終止就顯得不是那麼友好了(用戶此時需要的是挽回錯誤)。所以在發布給用戶的程序中,assert(斷言)要關閉。在VC++6.0下這是通過在包含assert.h頭文件之前定義NDEBUG實現的。
2.在定義了NDEBUG的情況下,斷言不應該給程序帶來副作用。這樣斷言就被定義為:
#define assert(exp) ((void)0)
此時,assert(i>=0);不管括弧中表達式為真還是為假,這一行代碼其實相當於:
NULL;意思是不執行任何操作。
㈥ linux借用外部命令expr,實現計算器功能,利用管道,進程
test指令(使用指令man查詢)
功能:檢查文件類型,值比較。
test的各種參數和使用。
test EXPRESSION1 –a EXPRESSION2
當表達式1和表達式2同時為真時值為真
test EXPRESSION1 –o EXPRESSION2
當表達式1或者表達式2為真時值為真
test –n STRING
或者
test STRING
當STRING串的長度不為零時值為真
test –z STRING
當STRING串長度為零時值為真
test STRING1 = STRING2
當STRING1和STRING2相同時值為真
test STRING1 != STRING2
當STRING1 和 STRING2不同時值為真
test INTEGER1 –eq INTEGER2
當INTEGER1等於INTEGER2時值為真
test INTEGER1 –ge INTEGER2
當INTEGER1大於或者等於INTEGER2時值為真
test INTEGER1 –gt INTEGER2
當INTEGER1 大於INTEGER2時值為真
test INTEGER1 –le INTEGER2
當INTEGER1小於等於INTEGER2時值為真
test INTEGER1 –lt INTEGER2
當INTEGER1 小於INTEGER2時值為真
test INTEGER1 –ne INTEGER2
當INTEGER1不等於INTEGER2時值為真
test FILE1 –ef FILE2
當FILE1和FILE2有同樣的device和inode號時為真(詳細見linux文件學習筆記)
test FILE1 –nt FILE2
當FILE1修改時間比FILE2新時值為真
test FILE1 –ot FILE2
當FILE1修改時間比FILE2舊時值為真
test –b FILE
FILE存在並且內容是block類型的
test –c FILE
FILE存在並且是字元類型的
test –d FILE
FILE存在並且是一個目錄
test –e FILE
FILE是否存在
test –f FILE
FILE存在並且是一個正則表達式類型的文檔
test –g FILE
FILE存在並且是 set-group-ID也就是SGID(詳細見後文學習筆記)
test –G FILE
FILE存在並且由有效的GROUP ID所擁有(詳細見後文學習筆記)
test –h FILE
FILE存在並且是一個符號鏈接(詳細見後文學習筆記)
test –k FILE
FILE存在並且設置了sticky bit set(詳細見後文學習筆記)
test –L FILE
FILE存在並且是一個符號鏈接
test –O FILE
FILE存在並且由一個有效的USER ID所擁有
test –p FILE
FILE存在並且是一個命名管道(命名管道見後文學習筆記)
test –r FILE
FILE存在並且授予了可讀的許可權
test –s FILE
FILE存在並且size大於0
test –S FILE
FILE存在並且是一個socket
test –t FD
文件的描述符FD在終端打開
test –u FILE
FILE存在並且SUID已經被設置
test –w FILE
FILE存在並且授予了寫操作許可權
test –x FILE
FILE存在並且授予了可執行的許可權
----------------------------------------------------------------------------------------------------------------------------------------------------
expr
expr是linux的手工命令行計數器,它可以幫助我們完成一些基本的表達式值運算。同時它也是一個字元串處理工具
(1) 整數運算
$expr ARG1 | ARG2
$expr ARG1 & ARG2
$expr ARG1 < ARG2
$expr ARG1 <= ARG2
$expr ARG1 = ARG2
$expr ARG1 != ARG2
$expr ARG1 >= ARG2
$expr ARG1 > ARG2
$expr ARG1 + ARG2
$expr ARG1 – ARG2
$expr ARG1 * ARG2
使用乘法時,需要使用反斜杠進行轉義
$expr ARG1 % ARG2
(2) 字元串操作
$expr length 「xxx」 //計算字元串長度
$expr substr 「this is a」pos length //從第pos位開始截取length長度的子串
$expr index 「tesr」e //獲取e在主串中首次出現的位置
(3) 增量計數
例子
loop=3
loop=`expr $loop + 1`
echo $loop
結果是4,在第二行代碼中,使用反引號,shell會將反引號中的內容作為一個系統命令,這樣一來,就好像我們在命令行內輸入了expr $loop + 1然後這個命令的返回結果被賦值到loop。
(4) 模式匹配(按照正則表達式模式匹配串)
通過指定冒號選項計算字元串中字元數。.*意即任何字元重復0次或多次。
> VALUE=account.doc
> expr $VALUE : 』.*』
8
在expr中可以使用字元串匹配操作,這里使用模式抽取.doc文件附屬名。
$expr $VALUE : 『\(.*\).doc』
accounts
(5) 其他
+ TOKEN
將TOKEN解釋為串,不管它是一個關鍵字或者一個操作符
延伸知識:
引號的作用
1 雙引號(「」)
1)使用」」可引用除字元$(美元符號)、`(反引號)、\(反斜線)外的任意字元或字元串。雙引號不會阻止shell對這三個字元做特殊處理(標示變數名、命令替換、反斜線轉義)。
Eg:name=gezn; echo 「User name:$name」//將列印User name :gezn
Echo 「The date is:`date +date-%d-%m-%Y`」//將列印The date is: 03-05-2009
Echo –e 「$USER\t$UID」 //將列印gezn 500
2)如果要查新包含空格的字元串經常用到雙引號
2 單引號(』』)
1) 如果用單引號把字元串括起來,則dayi9nhao內字元串中的任何特殊字元的特殊含義均被屏蔽。
2) 舉例:echo –e 『$USER\t$UID』//將列印$USER $UID(沒有屏蔽\t,是因為選項「-e」的緣故)
echo 『USER\t$UID』 //將列印$USER\t$UID
3 反引號(``)
1) shell將反引號中的內容作為一個系統命令,並執行其內容。使用這種方法可以替換輸出為一個變數
2) 舉例:a=`date + date-%d-%m-%Y` //將列印The date is: 03-05-2009
4.反斜線(\)
1)如果下一個字元有特殊含義,反斜線防止shell誤解其含義,即屏蔽其特殊含義。
2)下屬字元包含有特殊含義:& * + $ ` 「 | ?
3) 在列印字元串時要加入八進制字元(ASCII相應字元)時,必須在前面加反斜線,否則shell作普通數字處。
舉例: bj=Beijing; echo 」variable\$bj=$bj」//將列印variable $bj = beijing
------------------------------------------------------------------------------------------------------------------------------------------------
Shell特殊變數
在Shell中,預先定義了幾個有特殊含義的Shell變數,它們的值只能由Shell根據實際情況進行賦值,而不能通過用戶重新設置。shell的特殊變數包括它的位置和一些系統變數.
(一)常用位置變數:
$# 命令行上實際參數的個數,但不包含Shell腳本名。
$? 上一條命令執行後的返回值(也稱作 「退出碼」)。它是一個十進制數。多數Shell命令執行成功時,則返回值為0;如果執行失敗,則返回非0值。
$$ 當前進程的進程號。
$! 上一個後台命令對應的進程號,這是一個由1~5位數字構成的數字串。
$- 由當前Shell設置的執行標志名組成的字元串。例如:
set -xv 這個命令行給Shell設置了標志-x和-v(用於跟蹤輸出)。
$* 表示在命令行中實際給出的所有實參字元串,它並不僅限於9個實參。
$@ 它與$*基本功能相同,但是使用時加引號,並在引號中返回每個參數
$0 腳本名稱
$1..$9 第N個參數
下面的aaa bbb 為變數名
${aaa:-bbb} 如果$aaa為空或未定義,則取值$bbb.否則取值$aaa
${aaa:+bbb} 如果$aaa非空,則取值$bbb,否則取值為空
${aaa:=bbb} 如果$aaa非空,則取值$aaa,否則取值$bbb而且賦值(aaa=bbb)
${aaa:3} 如果aaa=abcdefg,則${aaa:3}的值為:defg ,相當於substr,計數從0開始
${aaa:3:2} 如上; ${aaa:3:2}取值為: de.相當於substr
${#aaa} 字元串$aaa的長度.
(二)常用系統變數:
$HOME 用戶的主目錄
$USER 用戶名稱
$GROUP 用戶所屬組名
$PATH 默認的搜索路徑
$HOSTNAME 主機名稱
$TZ 時區
$MAIL 存放郵件的路徑名
練手:
#!/bin/bash
echo $0
echo $*
echo $@
echo $#
echo $$
echo $_
在terminal窗口中執行:
./test.sh -a -b –c /home
./test.sh
-a -b -c /home
-a -b -c /home
4
3250
/home
區別$*和$@編寫如下test.sh腳本:
#!/bin/bash
function testargs
{
echo "$# args"
}
testargs "$*"
testargs "$@"
unset -f testargs
在terminal窗口中執行:
./test.sh -a -b /home
1 args //很明顯就一個嘛,傳入的是$*這個串,不是解釋後的參數
3 args //$@必須和引號搭配,所以結果正確
#!/bin/bash
function testargs
{
echo "$# args"
}
testargs $*
testargs $@
unset -f testargs
再次執行有:
./test.sh -a -b /home
3 args
3 args
作者:Aga.J
出處:http://www.cnblogs.com/aga-j
㈦ linux下報expr語法錯誤,代碼如下,本人是菜鳥,求指導。
如果你要用 expr 這個工具 需要注意空格, 你的源碼改成下面的即可 (注意加號和 1 之間的空格)
data=`expr$data+1`
用bash要做數學運算,最簡單的方法是用 let 語句,比如你的代碼可以寫成
data=1
letdata++
這樣就沒必要再調用外部工具去做數學運算了。
㈧ 股票實時行情讀取_與_計算 JavaScript+ASP JavaScript嵌套
大哥 還是使用各框架吧 哪有這樣整的啊
jq+Ajax OK
㈨ 求解條件運算符嵌套 cond expr1:expr2
",jyglisydgv,jhdgafcj,gvhgbhbh))$8)j,hbjhsxdbacs,uhbbSdnsbhxsb
㈩ 匯編中expr指令是做什麼用的
沒查到x86和arm架構有expr這條操作符或宏指令。
但根據語境可以推出expr是代表表達式,代表後面的2*3+4
疑似題主在閱讀中斷句在了錯誤位置,只是一個說明性的解釋。
或者涉及的環境中有非匯編器范疇的表達式。