我有非常简单的 shell 脚本
#!/bin/bash
cp -rf /var/www/ksite/app2/* /var/www/ksite/app
echo "----"
echo "done"
但似乎 cp 命令失败
如果我执行
cp -rf /var/www/ksite/app2/* /var/www/ksite/app
从终端一切正常。有人可以告诉我如何在 shell 脚本中包含 cp 吗?
谢谢
我们似乎怀疑这个脚本是如何失败的。如果没有错误消息,那么这是一个奇怪的消息。我建议:
which cp
cp
在脚本中使用它(例如/bin/cp
)bash -x script-name
看看你是否得到了你所期望的。echo $?
在脚本中的副本之后 - 如果它为零,那么它(认为它)起作用了。ls -ld /var/www/ksite/app
,也许有人设置了一个符号链接?. script-name
我有类似的问题。对我有什么帮助:
我使用 windows 和 putty 编写脚本,所以我在行尾有 \r\n 。请确保,您只有 \n 符号。
我复制了文件,它在脚本中对我有用的唯一方法是cp <source_dir>/fileName <dest_dir>/fileName
在命令行中也能cp <source_dir>/fileName <dest_dir>
很好地工作。
仅涵盖所有基础..权限在执行之间是否有所不同..即您是否以 sudo/root 权限执行一个,另一个以用户身份执行(不太可能,但我想我会问,因为我们不知道确切的错误是什么是)
与在 Windows 中创建脚本的 Vladmir 类似的问题。我在 linux 环境中使用 VIM 创建了一个新文件“my_bash_script.sh”,然后将我的脚本内容读入文件中:
:r file_made_in_windows.sh
然后我保存,关闭,然后将文件设置为可执行文件:
chmod 744 my_bash_script.sh
从那里,我运行了脚本:
./my_bash_script.sh
......它奏效了。多么奇怪的问题。我一时不知所措。