❶ 怎麼把shell後台輸出賦值給變數
寫一個a.sh腳本:
$
cat
a.sh
#!/bin/bash
declare
-i
k
declare
-i
m
declare
-a
arr
k=0
m=0
rm
-fr
num.txt
touch
num.txt
{
sleep
10;echo
"10.0"
>>
num.txt;
}
&
{
sleep
10;echo
"20.0"
>>
num.txt;
}
&
wait
while
read
line
do
arr[$k]=$line
((k++));
done
<
num.txt
while
[
$m
-lt
$k
]
do
echo
${arr[$m]}
((m++))
done
運行它:
$
chmod
+x
a.sh
$
a.sh
(或者
./a.sh)
10.0
20.0
謝謝。因為不了解你的詳細情況和需求。僅供參考。
❷ 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腳本怎樣讀取文件的值,並賦值給變數
在sell腳本中,讀取鍵盤輸入的內容並將其賦值給shell變數的命令為:
read -p "input a val:" val echo $val
read - 從標准輸入讀取數值。這個 read 內部命令被用來從標准輸入讀取單行數據。這個命令可以用來讀取鍵盤輸入,當使用 重定向的時候,讀取文件中的一行數據。
它的語法形式一般是:
read [-options] [variable...]
(3)shell命令賦值給變數賦值擴展閱讀:
Shell是一種腳本語言,常見的腳本解釋器有:
bash:是linux標准默認的shell。bash由Brian Fox和Chet Ramey共同完成,是BourneAgain Shell的縮寫,內部命令一共有40個。
sh: 由Steve Bourne開發,是Bourne Shell的縮寫,sh 是Unix 標准默認的shell。
常見的編程語言分為兩類:一個是編譯型語言,如:c/c++/java等,它們遠行前全部一起要經過編譯器的編譯。
❹ 如何在shell中把當前路徑賦值給一個變數
c=$PWD
$PWD表示當前路徑,將$PWD賦值給c變數c即為當前路徑的值
❺ shell中如何把一段指令的結果賦值給變數
用反引號將命令括起來,如變數=`命令`
用美元符和小括弧將命令括起來,如變數=$(命令)
❻ 在shell中變數賦值有四種方法,其中name=12的方法哇
用awk或者是cut
把指定的欄位(用一定的分隔符分隔的欄位)賦值給某個變數
variable=`awk
'{print
$n}'
filename`
用cut也能實現類似的辦法用awk的substr函數把指定欄位的某幾個字元賦值給variable,看下邊的例子:
ifconfig
|grep
"inet
addr"
...
❼ 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"