繁体   English   中英

Bash脚本-检查参数-中的文件

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM