如何运行一个脚本执行不同的操作

如何运行一个脚本执行不同的操作

如何从一个脚本运行不同的命令?例如,如果我想运行myscript new filename来创建此文件,然后运行myscript del filename来删除此文件。

目前,我有一个脚本,它接收变量并对其执行操作:

#!/bin/bash

for var in "$@"
      do
        touch $var".txt"
      done

答案1

你可以使用这个脚本:

#!/bin/bash
if [[ $1 == 'new' ]]; then
  touch "$2" && echo "File $2 is created"
elif [[ $1 == 'del' ]]; then
  rm "$2" && echo "File $2 is removed"
else
   echo "THe first srgument can be 'new' or 'del'"
fi
  • 如果脚本的第一个参数$1是,则将创建new第二个参数中给出的文件名$2,并通知用户

  • 因此,如果$1是,则将删除del给定的文件$2并通知用户

  • 在其他情况下,用户将收到有关正确使用模式的通知

例子 :

$ ls -1
scr.sh

$ ./scr.sh new foo
File foo is created

$ ls -1
foo
scr.sh

$ ./scr.sh new bar
File bar is created

$ ls -1
bar
foo
scr.sh

$ ./scr.sh del foo
File foo is removed

$ ls -1
bar
scr.sh

$ ./scr.sh foobar
THe first srgument can be 'new' or 'del'

答案2

我很确定你知道这些论点是如何起作用的($1、$2 等)。你需要创建一个 if 语句: if [ "$1" == "del"] then rm $var fi

教程:http://tldp.org/LDP/Bash-Beginners-Guide/html/sect_07_01.html

答案3

在 shell 脚本中,您可以使用 $n 获取参数,其中 n 是参数的位置。

所以,如果你想跑步# myscript new <filename>,那么新的可以通过使用 来获得动作$1

然后,您可以构建一个简单的条件块来执行不同的操作,例如:

if [ $1 == "new" ]; then .... .... fi

如果您不知道如何继续,请告诉我,我会帮助您!祝您好运。

相关内容