如果从shell脚本执行,则不会运行cp命令

Kup*_*pe3 2 linux bash shell cp

我有非常简单的shell脚本

#!/bin/bash    
cp -rf /var/www/ksite/app2/* /var/www/ksite/app
echo "----"
echo "done"
Run Code Online (Sandbox Code Playgroud)

但似乎cp命令失败

如果我执行

cp -rf /var/www/ksite/app2/* /var/www/ksite/app
Run Code Online (Sandbox Code Playgroud)

从终端一切正常.有人能告诉我如何在shell脚本中包含cp吗?

谢谢

cda*_*rke 5

我们似乎怀疑这个脚本是如何失败的.如果没有错误消息,那么这是一个奇怪的消息.我建议:

  1. 在命令行(有效)上,执行a which cp
  2. 无论回复是什么,然后复制并将其用作cp脚本(例如/bin/cp)
  3. 检查widcard扩展,运行您的脚本,bash -x script-name看看您是否得到了您的期望.
  4. echo $? 在脚本中复制之后 - 如果它为零则它(认为它)起作用.
  5. ls -ld /var/www/ksite/app从你的脚本做一个,也许有人设置一个符号链接?
  6. 如果仍然失败,请从命令行中获取脚本,看看是否有效 . script-name
  7. 仔细检查副本确实失败了!(也许这应该是第1步.)


unw*_*ind 2

确保你确实有 bash at /bin/bash。我认为击球手哈希爆炸是:

#!/usr/bin/env bash
Run Code Online (Sandbox Code Playgroud)

这使用env命令来定位 bash 二进制文件并设置环境。