我想找到一些目錄中的所有* .SH文件,但也有腳本的一些錯誤......查找目錄中的所有* .SH文件
#!/bin/sh
for plik in /var/panel/starter/*
do
if [ $(basename "$plik") != "priority" ] && [ $(basename "$plik") != "PRIORITY" ]
then
for plik in $plik/*
do
filename=$(basename "$plik")
extension="${filename##*.}"
filename="${filename%.*}"
if [ "$extension" == "sh" ]
then
echo $plik
fi
done
fi
done
有在/ var一些文件夾/面板/啓動器,並在這些文件夾中有外殼腳本,這就是爲什麼我用循環兩次。
這是錯誤:
[: 19: *: unexpected operator
[: 19: sh: unexpected operator
[: 19: sh: unexpected operator
[: 19: sh: unexpected operator
[: 19: *: unexpected operator
我想這個問題是一個像空文件夾:
/var/panel/starter/cs16/*
,我沒有一個知道如何面對這一切。
可你只是'找到-name 「* .SH」'?如果你想做一些過濾器,你可以使用'-regex'或者將輸出管道輸給'grep'。或者我誤解了你的要求 – Kent
'/ var/panel/starter/*。sh'? – devnull
這只是一個例子。後來我想執行這些腳本。而不是echo $ plik它將是sh $ plik。如果沒有if [「$ extension」==「sh」]'條件,它也會執行'/ var/panel/starter/cs16/*',我試圖避免這種情況。 @devnull,它不起作用。 –