【问题标题】:Use echo to create a bash fils [closed]使用 echo 创建 bash 文件 [关闭]
【发布时间】:2021-02-24 00:50:31
【问题描述】:

我想制作一个可以创建可执行文件的单行代码。这是我为朋友制作的快速指南,以便轻松复制粘贴。

我有这个:

export FILE=spotify; [ -f ~/.local/bin/$FILE ] && echo "File $FILE already exists. Couldn't create it..."; [ -f ~/.local/bin/$FILE ] || { echo $"#!/bin/sh\nflatpak run com.spotify.Client" > ~/.local/bin/$FILE; chmod +x ~/.local/bin/$FILE; echo "Successfully created $FILE" }

但是我被困在echo "#!/bash/sh" 上,导致“找不到事件”...

有什么办法可以克服吗?

【问题讨论】:

  • 你的问题不清楚。
  • printf '#!/bin/sh\n....'
  • 你为什么是exporting FILE? chmod 肯定不会使用它,echo 也不会。只需设置变量。
  • 我是 bash 脚本的新手。我认为出口是强制性的。谢谢你的建议!
  • 似乎在结尾}之前缺少;

标签: linux bash terminal echo


【解决方案1】:

在 Bash 交互式 shell 中,感叹号用于搜索 Bash 历史记录。具体来说,它将感叹号后面的字符串替换为历史中与该字符串匹配的第一个条目。如果没有这样的条目,你就会得到你所看到的症状。

解决方案是使用single-quoted string

【讨论】:

  • 使用单引号字符串。转义感叹号在双引号内不起作用(它将反斜杠作为字符串的一部分)。
  • 哇,非常感谢,解决了!这很有趣。我将不得不对 bash 中引号之间的区别进行研究。
猜你喜欢
  • 2014-01-07
  • 1970-01-01
  • 2018-07-18
  • 2011-08-20
  • 2013-08-15
  • 1970-01-01
  • 2012-03-29
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多