【问题标题】:Unix Shell String appending to delete file附加到删除文件的 Unix Shell 字符串
【发布时间】:2015-11-30 11:00:28
【问题描述】:

我正在编写一个脚本来从特定位置删除日志文件。我会将目录和文件名作为参数传递给函数。此功能将删除此文件。

代码如下

#!/bin/sh
folder= '/apps/applications/jboss-as/servers/domain/log/'
logfile=temp.log

delFile(){
echo 'you will delete $1 $2'
file_to_del='$1$2'
rm -rf $file_to_del
}

delFile $folder $logfile

输出如下。

你将删除 $1 $2

您能告诉我应该如何根据我的要求更新此代码吗?

【问题讨论】:

  • 删除第二行中等号和路径之间的空格。
  • 谢谢@Bernhard 没错!

标签: bash shell unix sh


【解决方案1】:

根据 Alberto 的建议,您需要使用 "。您还必须删除文件夹路径前的空格。

所以试试这个:

#!/bin/sh
folder=/apps/applications/jboss-as/servers/domain/log/
logfile=temp.log

delFile(){
echo "you will delete $1$2"
file_to_del="$1$2"
rm -rf "$file_to_del"
}

delFile "$folder" "$logfile"

【讨论】:

    【解决方案2】:

    在 bash 中,如果您使用单引号 ',则不会获得变量替换。

    您应该将file_to_del='$1$2' 更改为file_to_del="$1$2"

    关于主题:http://tldp.org/LDP/abs/html/varsubn.html

    【讨论】:

    • 你的回答成功了!接受 tod 的回答以帮助他达到 1k :)
    猜你喜欢
    • 1970-01-01
    • 2015-10-29
    • 1970-01-01
    • 2016-04-11
    • 1970-01-01
    • 2014-11-18
    • 1970-01-01
    • 2017-01-25
    • 1970-01-01
    相关资源
    最近更新 更多