shell腳本賦值
⑴ shell腳本中無法對數組賦值
第一行申明shell的時候sh改為bash就好了。
( ) 這種賦值方法在sh里不支持。
⑵ shell腳本中sql語句得到一個值,賦值給變數出錯
你沒有理解輸入重定向的概念。在你上面的代碼中,mysql
-uddap
-p$2是包含在輸入重定向范圍內的,所以不會提示你輸入密碼的。
你的$1
和$2也沒有定義,可以參考如下寫法:
#!/bin/sh
read
-p
"please
input
root
password"
pwd
mysql
-uroot
-p$pwd
<<
eof
\.
/usr/src/ddap-1.createuser.sql
\.
/usr/src/ddap-2.createdatabase.sql
\.
/usr/src/ddap-3.createtable.sql
\.
/usr/src/ddap-4.createprocereandfunction.sql
\.
/usr/src/ddap-5.createdata.sql
eof
⑶ 在Shell腳本中,讀取鍵盤輸入的內容並將其賦值給Shell變數的命令是什麼
在sell腳本中,讀取鍵盤輸入的內容並將其賦值給shell變數的命令為:
read-p"inputaval:"valecho$val
read - 從標准輸入讀取數值。這個 read 內部命令被用來從標准輸入讀取單行數據。這個命令可以用來讀取鍵盤輸入,當使用 重定向的時候,讀取文件中的一行數據。
它的語法形式一般是:
read[-options][variable...]
這里的 options 是下面列出的可用選項中的一個或多個,且 variable 是用來存儲輸入數值的一個或多個變數名。 如果沒有提供變數名,shell 變數 REPLY 會包含數據行。
基本上,read 會把來自標准輸入的欄位賦值給具體的變數。
⑷ 求救!shell腳本while中賦值無效
改用for循環就可以了:
for line in $(grep "TEST" logcat.txt)
⑸ 如何給shell腳本變數賦值,gbase資料庫查詢的結果
shell變數名=`gbase資料庫查詢命令`
示例:result=` ... `; echo $result;
⑹ shell腳本 變數動態賦值問題
#!/bin/bash
ax="yyf"
bx="xnmbyy"
xv=`eval expr '$'$1x`
echo $xv
⑺ shell腳本中如何給變數賦值,為什麼不能正確列印結果,另外如何給日誌文件名換成動態的,也就是每一天的
#!/bin/bash
TIME=`date +%F`
DIR="/home/flycat/test.log"
_result=`grep 'RETCODE不為000000' $DIR | wc -l`
echo "RETCODE不為000000 :$_result" > ${TIME}.log
⑻ shell腳本怎樣把一個文件的內容賦值給一個變數
linux 將文件內容賦值給shell腳本中的變數:
1#!/bin/sh
2 maildir=kewaringmail
3 lastVersion=xxxxxxxxxxxxxx/lastVersion/datestr.txt
4 mydatestr=`sed -n '1p' $lastVersion`
5 echo "the datestr is $mydatestr"
⑼ shell腳本變數的定義與賦值
定義變數
Shell 支持以下三種定義變數的方式:
variable=value
variable='value'
variable="value"
variable 是變數名,value 是賦給變數的值。如果 value 不包含任何空白符(例如空格、Tab 縮進等),那麼可以不使用引號;如果 value 包含了空白符,那麼就必須使用引號包圍起來。使用單引號和使用雙引號也是有區別的,稍後我們會詳細說明。
注意,賦值號=的周圍不能有空格,這可能和你熟悉的大部分編程語言都不一樣。
Shell 變數的命名規范和大部分編程語言都一樣:
變數名由數字、字母、下劃線組成;
必須以字母或者下劃線開頭;
不能使用 Shell 里的關鍵字(通過 help 命令可以查看保留關鍵字)。
變數定義舉例:
url=http://c.biancheng.net/shell/
echo $url
name='C語言中文網'
echo $name
author="嚴長生"
echo $author
使用變數
使用一個定義過的變數,只要在變數名前面加美元符號$即可,如:
author="嚴長生"
echo $author
echo ${author}
變數名外面的花括弧{ }是可選的,加不加都行,加花括弧是為了幫助解釋器識別變數的邊界,比如下面這種情況:
skill="Java"
echo "I am good at ${skill}Script"
如果不給 skill 變數加花括弧,寫成echo "I am good at $skillScript",解釋器就會把 $skillScript 當成一個變數(其值為空),代碼執行結果就不是我們期望的樣子了。
推薦給所有變數加上花括弧{ },這是個良好的編程習慣。
修改變數的值
已定義的變數,可以被重新賦值,如:
純文本復制
url="http://c.biancheng.net"
echo ${url}
url="http://c.biancheng.net/shell/"
echo ${url}
第二次對變數賦值時不能在變數名前加$,只有在使用變數時才能加$。
⑽ shell腳本里賦值運算符 =,:=,+=,=的區別
'='就是賦值運算
':='就是當冒號前面的變數不存在或值為空時,就把等號後的值賦值給變數
'+='這個應該不用解釋吧,和C中一樣,變數等於本身和另一個變數的和
'?='沒見過,不知道LZ說的是不是'?',它的意思是在語句a?b中如果a未定義則用b替換a