我想製作一個腳本,它需要兩個參數,第一個是數字,第二個是字符串/文件列表。Shell腳本在兩個字符串之間顯示文本
listfile 3 test.txt test1.txt test2.txt
基本上我想要做的就是把文件名稱下2個字符串<h>
和</h>
。就像這樣:
<h>
test.txt
test1.txt
test2.txt
</h>
的東西,可以去那裏面的金額由這對於上面的例子是3
如果我運行像另一個例子是第一個參數確定:
listfile 1 test.txt test1.txt test2.txt
在這種情況下,每個<h></h>
可以容納1個文件。所以輸出會是這個樣子:
<h>
test.txt
</h>
<h>
test1.txt
</h>
<h>
test2.txt
</h>
這裏是我的嘗試:
#!/bin/sh
value=0
arg1=$1
shift
for i in "[email protected]"
do
if [ $value -eq 0 ]; then
echo "<h>"
fi
if [ $value -lt $arg1 ]; then
echo "$i"
value=`expr $value + 1`
fi
if [ $value -ge $arg1 ]; then
echo "</h>"
value=`expr $value - $value`
fi
done
到目前爲止,我得到它的工作,但唯一的問題是,過去</h>
似乎沒有得到輸出我似乎無法找出解決方法。如果我嘗試:
listfile 4 test.txt test1.txt test2.txt
它輸出,但缺少</h>
:
<h>
test.txt
test1.txt
test2.txt
如果誰能給我將非常感激的提示。
'value = $(expr $ value - $ value)'更容易寫入'value = 0'。一個簡單的方法是在最後測試:如果值不爲零,則打印一個終止的'' –