带有反引号的 echo

带有反引号的 echo

在脚本中,我从 ksh 脚本中获得了以下代码:

 for log_file in `cat a_filename`
 do
    `echo mv from_directory/$log_file to_directory`
 done 

代码可以是

 for log_file in `cat a_filename`
 do
    mv "from_directory/$log_file" to_directory
 done 

反而 ?

使用 echo 和反引号有什么好处?

答案1

绝对没有。没有任何理由在代码的该位置使用反引号。一般来说,反引号应该替换为$(...)嵌套更好并且可以直观地处理引用的反引号。

严重地。不要写这样的代码。


我可以看到它可能来自哪里:

  1. 有人编写了一个快速而肮脏的脚本来将一些文件移动到某个地方。
  2. 他们插入了一个echo“使其安全”。这使得可以查看哪些命令会被处决,在测试时没有覆盖任何内容的风险。 (好东西)
  3. 其他人认为他们需要执行这些命令,因此他们只是将所有内容放在反引号中。
  4. 利润!
  5. 耻辱!

相关问题:什么时候应该使用 $( ) 定义变量

和:$(stuff) 和 `stuff` 有什么区别?

相关内容