gpt4 book ai didi

bash - 如何在一行中定义一个函数

转载 作者:行者123 更新时间:2023-11-29 09:01:20 29 4
gpt4 key购买 nike

经常在移动文件时,我需要稍后做相反的事情。所以在我的 .bashrc 中我包含了这个工作代码:

rmv() {
mv $2/${1##*/} ${1%/*}
}

现在我想知道为什么我不能把它写成单行代码。这是我尝试过的:

rmv() {mv $2/${1##*/} ${1%/*}}

如果我这样做,我会得到这个错误:

-bash: .bashrc: line 1: syntax error near unexpected token `{mv'

最佳答案

在 Bash 中,{ 不会被自动识别为与它周围的东西不同的特殊/独立标记。所以你需要在 {mv 之间有空格。

另外:

  • 需要是命令的开始;因此,如果它不在自己的行上,则需要 ; 来终止上一个命令。
  • 最佳做法是始终在任何参数扩展周围使用双引号,否则当参数包含空格或特殊字符时会出现奇怪的行为。

所以:

rmv() { mv "$2/${1##*/}" "${1%/*}" ; }

关于bash - 如何在一行中定义一个函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38595559/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com