Создание файлов в сценарии оболочки

Начиная с Ubuntu 18.04 (и соответствующие версии Debian)ifconfigи ifup/ ifdownустарели, и рекомендуемый способ вызова интерфейса — с помощью команды ip:

ip link set dev <interface> up
ip link set dev <interface> down

И вы можете проверить доступные интерфейсы с помощью:

ip link

И вы можете показать назначенные вашим интерфейсам IP-адреса с помощью:

ip addr show

Или, точнее:

ip addr show scope global | grep inet
-1
26.03.2021, 16:11
1 ответ

Один небольшой комментарий:pathможет быть не лучшим выбором для имени переменной, учитывая конфликт с PATH. edit:Как отмечает @Paul _Pedant в комментариях, в zshзарезервирована переменная path, представляющая собой массив строк, содержащих каталоги в $PATH. Некоторые другие оболочки, например bash, не имеют таких оговорок.


Вы можете сделать что-то вроде

FILES_HERE=/path/to/dir
touch $FILES_HERE/Test{1..100}.txt

Если у вас есть переменное количество файлов, которые вы хотите создать, вы можете сделать их, используя touchв цикле while:https://stackoverflow.com/a/31365662/3856731


Было бы полезно иметь скрипт, который может принимать аргумент и помещать туда файлы, по умолчанию $PWD, если скрипт вызывается без аргумента:

#!/bin/bash

touch ${1:-.}/Test{1..100}.txt

(Объяснение синтаксиса ниже ответа. )Предполагая, что это сохранено как test.sh, и вы позвонили chmod +x test.sh, вы можете сделать:

$./test.sh

чтобы поместить 100 пустых файлов в текущий каталог. Или позвоните по номеру

$./test.sh ~/Documents

, чтобы записать их в ~/Documents.

редактировать:
Объяснение синтаксиса:${1:-.}означает «заменить первым аргументом командной строки на этот скрипт($1)или по умолчанию .(, также известный как $pwd), если $1не установлен или равен пустой строке ''. Когда вы вызываете исполняемый скрипт, переданные вами аргументы автоматически перечисляются:

./script.sh $1 $2 $3 $4...
1
28.04.2021, 22:55

Теги

Похожие вопросы