[英]Bash Script - check arguments - files in for
我想檢查給定文件是否存在但是,我不知道如何正確地寫條件以指向其他文件
#!/bin/bash
if [ $# -ge 2 ]
then
for i in `seq 1 $#`
do
if [ -e ${$i} ]
then
echo "yes"
else
echo "not exist"
fi
done
else
echo ""
fi
您的條件應為:
if [ -e "$i" ]
不:
if [ -e ${$i} ]
我不清楚你在問什么。 您是否將文件名作為腳本的參數傳遞? 如果是這樣,則需要遍歷這樣的參數:
for file in "$@"
do
if [ -e "$file" ]
then
echo "$file exists"
else
echo "$file does not exist"
fi
done
從man bash
CONDITIONAL EXPRESSIONS
部分:
Conditional expressions are used by the [[ compound
command and the test and [ builtin commands to test
file attributes and perform string and arithmetic
comparisons. [...]
-a file
True if file exists.
-b file
True if file exists and is a block special file.
-c file
True if file exists and is a character special file.
-d file
True if file exists and is a directory.
-e file
True if file exists.
-f file
True if file exists and is a regular file.
-g file
True if file exists and is set-group-id.
-h file
True if file exists and is a symbolic link.
-k file
True if file exists and its ``sticky'' bit is set.
-p file
True if file exists and is a named pipe (FIFO).
-r file
True if file exists and is readable.
-s file
True if file exists and has a size greater than zero.
-t fd
True if file descriptor fd is open and refers to a terminal.
-u file
True if file exists and its set-user-id bit is set.
-w file
True if file exists and is writable.
-x file
True if file exists and is executable.
-G file
True if file exists and is owned by the effective group id.
-L file
True if file exists and is a symbolic link.
-N file
True if file exists and has been modified since it was last read.
-O file
True if file exists and is owned by the effective user id.
-S file
True if file exists and is a socket.
還有,狗狗所說的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.