【问题标题】:Using ssh to create script to move and rename file使用 ssh 创建脚本来移动和重命名文件
【发布时间】:2015-01-28 03:48:07
【问题描述】:

我对 ssh、终端编程非常陌生,我有一个问题要问。

已创建测试平台脚本以允许该进程:

  1. 将单个文件从 .js 移动到 .js.org,该过程在整个目录中完成

  2. 将特定文件“A.js”从另一个文件复制到整个父目录中的现有文件

因此,这个测试平台脚本的目的是允许进程在用户决定上传一个新文件时运行:例如一个图像文件到服务器,它总是会调用这个脚本来执行上面提到的更改1 和 2。

但是,我只设法想出了以下代码,从那以后我就一直卡住了。此外,当我尝试运行它时,总是提示以下错误行。

awk: 9: 意外字符'.'

有什么帮助吗?非常感谢。

我附上了以下代码供您阅读:

代码:

#! /bin/bash
# set search path
dirpath = "."

find $dirpath -type f  | awk 'BEGIN{pattern="\.js"} $0 ~ pattern {
    printf "Checking => %s\n",$0

    if ( $0 ~ /pano2vr_player\.js$/)  {
            printf "Detect and Move Command => mv %s %s .org\n",$0, $0
            printf "Executing\n"

            system(mv $0.  $0.org)
            system(cp property107/360/4/pano2vr_player.js $dir)

    }
}'

【问题讨论】:

  • 您为什么要使用 awk 来完成这样的任务,而不是简单地使用 mv?这似乎不必要地复杂。
  • @MattBall 因为涉及多个目录,我正在考虑使用脚本来执行任务而不是单独执行任务
  • 我不认为你明白我的意思。您可以在 bash 脚本中使用mv 而无需使用awk
  • @MattBall 你能举个例子吗?对我来说可能更容易理解

标签: ssh awk terminal


【解决方案1】:

忘记了在系统中(“”),应该包含在“”中,以便它将其视为一个字符串,并防止字符串在 cmd 执行时中断。

#! /bin/bash
# set search path
dirpath = "."
srcpath = "/var/www/html/spacetobe/js"

find $dirpath -type f  | awk 'BEGIN{pattern="\.js"} $0 ~ pattern {
    printf "Checking => %s\n",$0

    if ( $0 ~ /pano2vr_player\.js$/)  {
            printf "Detect and Move Command => mv %s %s.org\n",$0, $0
            printf "Executing\n"

            system("mv " $0 " "  $0 ".org")
            printf "cp Command => cp %s/pano2vr_player.js  %s\n","/var/www/html/spacetobe/js", $dirpath
            system("cp -f /var/www/html/spacetobe/js/pano2vr_player.js "  $dirpath)

    }

}'

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-06-03
    • 1970-01-01
    • 1970-01-01
    • 2012-11-19
    • 1970-01-01
    • 2022-05-31
    • 1970-01-01
    • 2011-09-10
    相关资源
    最近更新 更多