1樓:匿名使用者
先不正面回答問題。先談一個指令碼中可疑之處。
在對檔案filename.txt的每一行進行相同或有規律的處理時,常用2種方法。
常用的第一種方法是(就是檔案內容輸入重定向的方法):
while read line
do對$line的處理命令
done < filename.txt
常用的第二種方法是(cat加管道的方法):
cat filename.txt | while read line
do對$line的處理命令
done
針對這2種方法,舉例如下:
$ cat filename.txt
jack
mike
rose
$ cat a1.sh
#!/bin/bash
while read line
doecho "the name is $line"
done < filename.txt
$ cat a2.sh
#!/bin/bash
cat filename.txt | while read line
doecho "my name is $line"
done
$ a1.sh (或者執行./a1.sh)
the name is jack
the name is mike
the name is rose
$ a2.sh (或者執行./a2.sh)
my name is jack
my name is mike
my name is rose
你在上面所提供的指令碼中,cat加管道的方法(cat filename.txt | while...)、檔案內容輸入重定向的方法(...
done < filename.txt )同時使用了,可能不算是問題,但幾乎沒有同時使用的。
下面言歸正傳。
下面的例子,一個輸出flase, 一個輸出true,看完例子就知道答案了:
$ cat filename.txt
jack
mike
rose
$ cat b1.sh
#!/bin/bash
bl=false
cat filename.txt | while read line
dobl=true
echo "x=$bl"
done
echo $bl
$ cat b2.sh
#!/bin/bash
bl=false
while read line
dobl=true
echo "x=$bl"
done < filename.txt
echo $bl
$ b1.sh (或者執行./b1.sh)
x=true
x=true
x=true
false
$ b2.sh (或者執行./b2.sh)
x=true
x=true
x=true
true
供參考,謝謝!
2樓:匿名使用者
./表示執行當前目錄下某個可執行檔案,這個檔案不一定是bash指令碼,但是sh方式就只能執行shell指令碼,如果一個二進位制可執行程式你用sh ./binexample這種方式執行,會報錯的。
shell指令碼 變數動態賦值問題
3樓:匿名使用者
#!/bin/bash
ax="yyf"
bx="xnmbyy"
xv=`eval expr '$'$1x`echo $xv
4樓:剎神之劍
#!/bin/bash
ax="yyf"
bx="xnmbyy"
case $1 in
"a")
xv=$ax;;
"b")
xv=$bx;;
esac
echo $xv
shell中使用for迴圈對變數賦值出現問題!!!
5樓:小米飛貓
m=$((80*$j))
6樓:春天來了呃
#!/bin/bash
for((j=1;j<=5;j++))
dom=$[80*$j]
echo $m
done
如此,即可
7樓:匿名使用者
m=`expr 80 * $j`
shell中$1賦值給變數,此變數卻是空的,為什麼? 10
8樓:匿名使用者
filename=$1
賦值語句中不能有空格. 看看是不是這個問題.
9樓:匿名使用者
./表示執行當前目錄下某個可執行檔案,這個檔案不一定是bash指令碼,但是sh方式就只能執行shell指令碼,如果一個二進位制可執行程式你用sh ./binexample這種方式執行,會報錯的。
vc 指標變數賦值問題,指標變數賦值方式
雖然b是正確答案,但是對cd的理解不對。a,p是對地址為p的記憶體賦值,因為p還未賦值,這種行為是危險的b,陣列的首址可理解為一個常量指標 即指向的地址不能改變的針 雖然指標不能被修改,但是其指向的地址的內容是可以改的。c。a是常量,其地址不能被修改 d。錯誤在於對引用a的初始化,應該使用相同型別 ...
一個shell指令碼引用變數的問題
solaris 的 bin sh 是最原始的 shell,應該是不支援 這類用法的,你可以換成 bash。即把。bin sh 改成 path to bash 一般來說,要麼是 bin bash 或者 usr bin bash linux下shell指令碼中sqlplus呼叫shell變數的問題 1 ...
關於python中的賦值變數的問題
是指向同一個記憶體地址的,python的賦值是隻是把變數的記憶體地址賦值給另一個變數,這一點可以使用python的內建方法id 來進行測試,對於你給的例子 我們假設 qh 這個字串在記憶體中的地址是a,ljq 在記憶體中的地址是b you qh 讓you變數指向a地址。me you 讓me變數和yo...