systemctl не запускает сценарии в режиме системного сна

Современный find (через POSIX, поэтому не-GNU find в OpenBSD поддерживает это) может делать необходимая работа без обращения к xargs через форму -exec command {} + .

find ... -exec rm -rf '{}' \+
0
13.01.2019, 23:39
2 ответа

Вам нужно отделить $ BASE от чисел (1..5), иначе sh интерпретирует то, что вы хотите, как переменную с именем, например. $ BASE1 вместо того, чтобы давать вам значение $ BASE с добавленным 1 .

Вот исправленная и немного улучшенная версия вашего скрипта.

echo -n "Please enter your base directory name: "
read BASE
mkdir -p "$BASE" "$BASE/$BASE"{1..5}
ls -1d $BASE $BASE/*

Если вы не используете bash, zsh, ksh или любую другую оболочку, поддерживающую {1..5} , вы можете сделать это вместо этого:

echo -n "Please enter your base directory name: "
read BASE
mkdir -p "$BASE" 
for i in 1 2 3 4 5 ; do mkdir -p "$BASE/$BASE$i" ; done
ls -1d $BASE $BASE/*
0
29.04.2021, 00:22

В bash я бы сделал:

#!/usr/bin/bash
base="$1" #Get it from the argument, prompts for input aren't very unixy
mkdir -p "$base/$base"{1..5}
ls -d */

В тире вы не можете использовать {1..5} , поэтому:

for i in `seq 5`; do mkdir -p "$base/$base${i}"; done
0
29.04.2021, 00:22

Теги

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