我一直在尝试许多不同的方法来循环遍历参数,使用for和while循环的不同方法,但它不起作用。我的脚本应该接受争论并回答它们是文件,指南等等。
while $1 in "$@" ;do
if [ -f $1 ];then
echo "$1 regular file"
elif [ -d $1 ];then
echo "$1 directory"
elif [ -f $1 ];then
echo "$1 excuteable file"
elif [ -h $1 ];then
echo "$1 symbolic"
else
echo "$1 Does not exist"
fi
1=$(( $1 + 1 ))
done
如何循环每个参数?
答案 0 :(得分:1)
这是你想要使用的:
for arg in "$@"; do
if [ -f $arg ];then
echo "$arg regular file"
elif [ -d $arg ];then
echo "$arg directory"
elif [ -f $arg ];then
echo "$arg excuteable file"
elif [ -h $arg ];then
echo "$arg symbolic"
else
echo "$arg Does not exist"
fi
done
第一次循环,$arg
成为第一个参数。下一次,它成为第二个参数,等等。
通常,for
循环会迭代您提供的任何项目,并将每个项目分配给变量。例如,如果你做了
for x in a b c; do
echo $x
done
然后$x
将是“a”第一次通过循环,然后是“b”,然后是“c”,所以你的输出将是:
a
b
c
在顶部的代码中,我们不是使用显式值,而是使用"$@"
代替,这意味着“我们传递给此脚本的任何参数”。
答案 1 :(得分:1)
<div id="myModalTransportDetails" class="modal fade" role="dialog" tabindex="-1" aria-labelledby="myModalLabel" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal">×</button>
<h4 class="modal-title">REGnr</h4>
</div>
<div class="modal-body" id="orderDetails">
<div class="form-horizontal">
<div class="form-group">
<label class="control-label col-sm-4">LP:</label>
<div class="col-sm-8">
<input type="text" class="form-control red-stripe" id="label1">
</div>
</div>
</div>
</div>
<div class="form-group">
<label class="control-label col-sm-4 text-left">Arrive date:</label>
<div class="col-sm-8">
<input type="text" class="form-control red-stripe" id="label3">
</div>
</div>
</div>
</div>
</div>
<div class="modal-footer">
<a href="@Url.Action("Details", "GRTE", New With {.id = 1})" class="btn btn-primary" id="details">
Show pictures
<span class="glyphicon glyphicon-picture" aria-hidden="true"></span>
</a>
<button type="button" class="btn btn-warning glyphicon glyphicon-off" data-dismiss="modal"> Close</button>
</div>
</div>
</div>
</div>
使用条件,它不会迭代列表。
while
要迭代列表,请使用while (( $# )); do
if [[ -f "$1" ]] ; then
echo File "$1".
elif
...
fi
shift # Remove the first argument from $@.
done
:
for