1樓:匿名使用者
if [[# -gt 2 ]]
[[與$#之間要有一個空格,]]與2之間也要有個空格,不能挨著。
linux shell程式設計:shell 指令碼引數問題! 10
2樓:匿名使用者
關於引數傳遞:
假我要獲取/home某目錄檔案某目錄我原先知道所需要先使用:
ls -l /home
獲取/home目錄資訊。
現需要ls -l /homels -l $filenamemore 三命令寫同shell
該寫$filename傳遞。
寫簡單程式。
#!/bin/bash
i=0while [$i]
doecho "$i"
done程式始報錯:
snytax error near unexpected token 'do'
並且管我寫任何內容要while控制語句報種錯誤我程式問題linux問題。
linux中sh指令碼里面的問題。
3樓:網友
$@:表示所有指令碼引數的內容。
#:表示返回所有指令碼引數的個數。
示例:編寫如下shell指令碼,儲存為!/bin/sh
echo "number:$#
echo "argume:$@
執行指令碼:./first_arg second_arg說明:給指令碼提供了兩個引數,所以$#輸出的結果是2,$@代表了引數的內容!
linux shell指令碼while程式設計的問題
4樓:匿名使用者
這個在句法上有問題,在「」要與判斷條件之間要有空格。
另外,就是你這個迴圈語句是一個死迴圈,最好是加一個判斷語句,好跳出迴圈。
5樓:網友
中括號前後都要有空格吧。
而且我在solaris上試了一下,你這個是死迴圈,一直不停地輸出0。
6樓:轉轉耳朵
是你的程式寫的有問題,while 後面的裡面,要加上前後空格。
要像這樣:#!/bin/bash
i=5while [ i -gt 0 ];
doecho "$i"
i=$[i - 1 ]
done
linux shell指令碼程式設計問題,提示too many arguments
7樓:匿名使用者
if [ d $a –a –w $a ]
這句裡面的 -是全形字元,要改成半形的 -
8樓:大俠的眼淚
估計是這個問題 [ d $a -a -w $a ]
你這個邏輯是正確的,可能的問題就是有些字元可能有錯,你在仔細檢查下。
另外可以根據報錯資訊定位。
9樓:匿名使用者
是 ls $ 這句報錯麼? 資料夾內的檔案太多了。
linux的程式設計問題! 編寫一個shell指令碼 它把第二個位置引數及其以後的各個引數指定的檔案複製
10樓:冷罪人
您好,我來。
copy為您解決這個困惑。
# 儲存檔案複製後的路徑,即第一個引數。
dir = 1
# 引數前移,執行shift命令之後,$1的值就變成$2的值了,原來的$1就不存在了。
# 同理$2的值變成$3的值,如果原來有9個引數,通過shift之後就剩下8個。
shift# 當沒有把全部引數前移完時。
while [ 1 ]
do# 這個賦值語句也可以不要。
file = 1
# 完成檔案複製。
cp $file $dir
# 再次前移引數。
shiftdone
# 複製完畢,列出複製後的目標路徑。
ls $dir
linux shell程式設計指令碼第一行為什麼一定要用"#!/bin/sh",不寫行不行?這個"!"是什麼意思?
11樓:匿名使用者
#!/bin/sh為指定你執行指令碼的shell型別,是bash,ksh還是其它,一般系統有固定的shell,不定這行也能執行,只是為了規範寫上的。還有比如你執行的是perl程式,就可以寫#
/bin/perl.
12樓:匿名使用者
#! /bin/sh 是指此指令碼使用/bin/sh來解釋執行,#!是特殊的表示符,其後面跟的是解釋此指令碼的shell的路徑。
如果沒有宣告,則指令碼將在預設的shell中執行,預設shell是由使用者所在的系統定義為執行shell指令碼的shell.如果指令碼被編寫為在kornshell ksh中執行,而預設執行shell指令碼的為c shell csh,則指令碼在執行過程中很可能失敗。
13樓:使者
表示用來解釋此指令碼的程式是"/bin/sh"
不寫的話應該不會出錯。
但是考慮到移植問題,還是寫上比較好。
14樓:匿名使用者
這個是告訴系統,應該呼叫哪個東西來執行他。
是特殊格式。
linux中shell指令碼問題 unexpected operator
linux 2 6的shell指令碼中如何kill掉 sleep程序
你是說找到系統中所有名字為sleep的程序id,並且殺死它們,是嗎?我沒有linux平臺測試,我使用的hp ux,下面的 你可能需要適當調整才可以使用。下面的命令可以找出系統中的所有程序 ps e 要查詢所有名稱為sleep的經常,有的系統可以給ps使用 n引數,例如 ps n sleep 但是通用...
linux下shell指令碼執行過程中重新輸入命令
使用一個小的shell b呼叫a即可。想做個linux下的指令碼中,在原先的命令中需要在輸入命令後手動輸入一個yes後才能執行 我想批量執行命令 把指令碼里的yes判斷去掉就是了。如果不想改,也很簡單 bin bash for i in cat yes id idone linux shell指令碼...
shell指令碼中如何跨指令碼呼叫其他指令碼中的函式
這個前提是在你指令碼執行過程中,其他指令碼也需要執行並呼叫,然後可以把函式放到環境變數中,再從指令碼中讀取環境變數 shell指令碼怎麼呼叫其他shell指令碼 在shell中要如何呼叫別的shell指令碼,或別的指令碼中的變數,函式呢?方法一 subscript.sh方法二 source subs...