Как я могу выполнить различные команды из одного сценария? Например, если я хочу работать myscript new filename
создать этот файл и работать myscript del filename
удалить этот файл.
В данный момент у меня есть сценарий, который получает переменную и формует действие на нее:
#!/bin/bash
for var in "$@"
do
touch $var".txt"
done
Можно использовать этот сценарий:
#!/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
, будет удален, и пользователь будет уведомлен
В другом пользователе случаев, будет дан уведомление OS корректный башмак использования
Пример:
$ 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'
Я вполне уверен, Вы знаете, как arguements работают (1$, 2$, и т.д.), необходимо будет создать если оператор: если ["1$" == "del"] затем Учебное руководство $var fi
комнаты: http://tldp.org/LDP/Bash-Beginners-Guide/html/sect_07_01.html
в оболочке, пишущей сценарий Вас, может получить аргументы при помощи $n, где n является положением аргумента.
Так, если Вы хотите работать # myscript new <filename>
, затем новый , действие может быть получено при помощи $1
.
Затем Вы могли создать простой условный блок для выполнения различных действий, как:
if [ $1 == "new" ]; then
....
....
fi
Сообщенный мне, если Вы не можете понять, как продолжить и я помогу Вам! Удача.