如何从一个脚本运行不同的命令?例如,如果我想运行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
如果您不知道如何继续,请告诉我,我会帮助您!祝您好运。