LINUX程式設計中shell指令碼的問題

2023-01-17 15:20:22 字數 2725 閱讀 7612

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...