【问题标题】:Write a script that takes exactly one argument, a directory name编写一个只接受一个参数的脚本,一个目录名
【发布时间】:2014-10-31 19:53:36
【问题描述】:

编写一个只接受一个参数的脚本,一个目录名。脚本应该将该参数打印回标准输出。确保脚本在需要时生成使用消息,并通过消息处理错误。

我写代码,我怎么理解。我对这个问题理解正确吗?也许还有其他版本如何找到目录。

#!/bin/bash

echo "Enter fail name:"
read str

find "$str" 2>/dev/null

sa=$?

if [ "$sa" = '0' ]    
then    
   echo "$str"    
else
   echo "Error"
fi

【问题讨论】:

  • 使用[[ -d "$str" ]]判断参数是否为目录,不需要使用find
  • 这可能已经在这里得到了回答:stackoverflow.com/questions/16344365/…。这对你有帮助吗?
  • @alph486 我无法使用 [[ -d "$str" ]]。代码怎么写?
  • 请查看上面的附加链接,看看该解决方案是否适用于您使用 bash 查找目录。另外,您是否有理由编写脚本来执行此操作?您可以使用上面链接中显示的 find 命令的变体吗?

标签: bash sh


【解决方案1】:

您的脚本似乎没有使用参数。在bash 中,第一个($0 是您的脚本)将是$1 之类的,

#!/bin/bash

if [ "$1" == "" ]; then
  echo "$0: Please provide a directory name"
  exit 1
fi
if [ ! -d "$1" ]; then
  echo "$0: $1 is not a directory name"
  exit 1
fi
echo "$1"

【讨论】:

  • 当我运行这个脚本时,脚本打印请提供一个目录名,我在哪里写目录名?
  • 当你运行脚本时(作为command line argument)。 ./script <DIRECTORY>
  • 谢谢你的工作,要写什么来检查文件?
  • 你能回答我这个问题吗askubuntu.com/questions/544186/…
猜你喜欢
  • 1970-01-01
  • 2012-05-21
  • 2021-05-09
  • 2014-12-13
  • 1970-01-01
  • 1970-01-01
  • 2021-05-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多