【问题标题】:Command not found in bash script在 bash 脚本中找不到命令
【发布时间】:2018-05-17 14:59:05
【问题描述】:

我有一个文件夹,其中包含一些文件,包括“.bar”文件。现在我想制作一个 bash 脚本来查找这些“.bar”文件并创建一个同名的文件夹。但是我似乎无法正确使用语法。

我用:

#!/bin/bash
PATH="folder"

for filename in ${PATH}/*.bar; do
    mkdir $(basename ${filename%.*})
done

当我在终端中使用它时它似乎可以工作,但是当我输入脚本时它失败并出现错误:“basename:command not found”和“mkdir:command not found”。我怎样才能让它工作?

【问题讨论】:

  • PATH 是一个非常重要的保留变量。因为您要在第二行替换它的值,所以整个脚本都会中断。
  • @Robin479。这确实解决了它。您可以将其发布为答案以便我接受吗?

标签: linux bash


【解决方案1】:

试试这个

#!/bin/bash
folderpath="folder"

for filename in "${folderpath}"/*.bar; do
    mkdir "$(basename "${filename%.*}")"
done

PATH 是一个内部 shell 变量,不应在你的 shell 脚本中使用。

【讨论】:

  • All 全部大写的变量保留给 shell 使用。
猜你喜欢
  • 2015-07-01
  • 2015-08-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-10-07
  • 2023-03-10
  • 2013-11-10
  • 2016-09-27
相关资源
最近更新 更多