如何输入目录作为命令行参数

时间:2018-11-18 06:27:56

标签: bash command-line

#!/bin/bash

echo Enter a Directory Name:
read

if [ -d "$1" ];
 then
  find "$1" -type f -size 0 -delete
  find "$1" *.tmp -type f -delete
  find "$1" *.swp -type f -delete
  tar -cvzf mytarfile.tgz "$1"
else
  echo "This is not a directory"
fi

当我自己使用./program.sh Desktop放置目录时,脚本将运行。如果我的桌面上没有txt,.tmp和.swp文件,它将删除它们并生成tar文件。如何在(读取)行中输入目录,例如Documents或MyMusic。它可以让我输入内容,然后转到其他位置并显示“这不是目录。

2 个答案:

答案 0 :(得分:2)

将所有$1替换为$REPLY


看看read的语法:help read

答案 1 :(得分:1)

您可以使用变量来读取目录名称,例如:

filter,map,bool

或更好:

PackageManager pm = context.getPackageManager();
pm.clearPackagePreferredActivities("you_package_name");

,然后将所有echo "Enter a Directory Name:" read Dir_Name 替换为read -p "Enter Directory Name:" Dir_Name

$1是Unix中的特殊变量。 在这里阅读:special variables