【问题标题】:What does this BASH shell script excerpt do?这个 BASH shell 脚本摘录有什么作用?
【发布时间】:2015-07-22 13:27:17
【问题描述】:

你能解释一下下面的代码吗(假设HOST包含一个字符串):

HOST=${HOST//$'\n'/}

如果在函数内部声明了上述行,变量“HOST”是否可用于同一脚本中的其他函数?

【问题讨论】:

    标签: regex bash shell


    【解决方案1】:

    根据ABS guide中的子字符串替换子章节:

    HOST=${HOST//$'\n'/}
    

    删除HOST 变量中出现的所有 个换行符$'\n'

    如果上面的行是在函数内部声明的,变量 HOST 可用于同一脚本中的其他功能?

    是的,假设 HOST 没有使用 bash 声明 local 关键字。

    【讨论】:

    • 谢谢你,这很有帮助,我会阅读你链接的手册的其余部分。第二个问题是澄清我认为我已经知道的,但是由于某种原因,这个变量在另一个函数中使用时是空的。
    • @ViniH:如果这两个函数在同一个进程中被调用(你假设没有父母与孩子或孩子与父母的沟通),那么我认为没有理由出现这种不当行为。如果只有HOST 变量只包含换行符,那么一旦在一个函数中删除了这些符号,另一个函数确实可以将该变量视为空。
    • 谢谢,进一步调查它正在产生子线程。
    • 一般来说,ABS 并不是最好的指南。 Bash 参考手册和Bash FAQBash Guide 更好。
    • @ViniH:您应该导出变量以使其在子进程中可见。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-12-14
    • 2013-10-20
    • 1970-01-01
    • 1970-01-01
    • 2014-09-18
    • 2011-04-11
    • 2015-11-07
    相关资源
    最近更新 更多