解释一下这个shell脚本的两行

时间:2015-10-25 16:10:16

标签: bash shell file-exists cp

这是什么意思?

if [ -f $2/$1 ]

和这一行:

cp $1 $2/$1

$2/$1代表一个文件,因为它与-f相关联吗?

#!/bin/bash
if test $# -ne 2 
then
  echo "Numbers of argument invalid"
else
  if [ -f $2/$1 ]
  then
    echo "file already exist , replace ?"
    read return
    if test $return = 'y'
    then
      cp $1 $2/$1
    else
      exit
    fi

  else
    cp $1 $2/$1
  fi
fi

2 个答案:

答案 0 :(得分:0)

给定2个参数/名称($2$1),这是为了确保名称为$2的目录$1下的文件存在。如果是,则将$1指示的本地文件复制到具有相同名称的目录$2中。

但是,根据您的以下示例,它的使用方式略有不同。如果目标中尚不存在该文件,它会立即将文件复制到名称由$2指定的子目录中。如果文件确实存在于目的地中,它首先会提示用户是否为o.k.覆盖现有文件。

http://www.gnu.org/software/bash/manual/html_node/Bash-Conditional-Expressions.html

答案 1 :(得分:0)

$query_upload="INSERT into `images_tbl` (`images_path`,`submission_date`)    VALUES ('".$target_path."','".date("Y-m-d")."')";