#!/usr/bin/env bash
USER=$1 # базовая часть имени пользователя
PASS=$2 # базовая часть пароля
N=$3 # количество пользователей
for (( i = 1; i <= $N; i++ )); do
useradd "${USER}_$i" && $(echo "${USER}_$i:${PASS}_$i" |chpasswd)
echo "User ${USER}_$i added!"
done
$ sudo ./luser.sh user pass 3
User user_1 added!
User user_2 added!
User user_3 added!
$ grep -e "^user" /etc/passwd
user_1:x:1314:1314::/home/user_1:/bin/bash
user_2:x:1315:1315::/home/user_2:/bin/bash
user_3:x:1316:1316::/home/user_3:/bin/bash
$LS="ls -t | grep database" for li in $LS do echo $li done
$LS=...
LS=...
LS="ls -t | grep database"
LS="$(ls -t | grep database)"
LS="$(ls -t | grep database)"
for li in $LS
do
echo $li
done
как написать функцию в bash, чтобы она принимала один аргумент, а внутри можно было этот аргумент (строку) распарсить и вернуть из неё число
foo() {
foo_arg1="$1"
echo "$foo_arg1" | awk -F- '/^p-[[:digit:]]{1,}$/{printf $2}'
}
foo p-4 # вернет 4
потом вызвать уже в блоке if при соответствующем условии myFunc $1
код в if
elif [[ $1 == 'p-"${2}"' ]]; then ...прочий конфиг --mark myFunc $2
[[ "$1" == "p-$2" ]]
#!/usr/bin/env bash
arg1="$1"
arg2="$2"
foo() {
foo_arg1="$1"
echo "$foo_arg1" | awk -F- '/^p-[[:digit:]]{1,}$/{printf $2}'
}
if [[ "$arg1" == "p-$arg2" ]]; then
echo --mark $(foo $arg1)
fi
exit
./0.sh p-4 4
--mark 4
./0.sh p-4 5 # ничего не выведет так как p-4 неравно p-5
#!/usr/bin/env bash
set -o xtrace
set -o errexit
MicroSD="/dev/sdX"
DIR="/tmp/bbb"
MNT="$DIR/mnt"
rm -rf $DIR
mkdir -p "$MNT"
dd if=/dev/zero of=$MicroSD bs=2M count=1 conv=fsync oflag=direct status=progress
echo -e "label:dos\nstart=2M" | sfdisk $MicroSD
yes | mkfs.ext4 -O '^metadata_csum,^64bit' -m1 ${MicroSD}1
mount ${MicroSD}1 "$MNT"
am33x=ArchLinuxARM-am33x-latest.tar.gz
curl -L -o $DIR/$am33x "http://os.archlinuxarm.org/os/$am33x"
bsdtar -xpf "$DIR/$am33x" -C "$MNT" && sync
dd if=$MNT/boot/MLO of=$MicroSD bs=128k count=1 seek=1 conv=notrunc,fsync oflag=direct status=progress
dd if=$MNT/boot/u-boot.img of=$MicroSD bs=384k count=2 seek=1 conv=notrunc,fsync oflag=direct status=progress
umount "$MNT"
exit
И вот собственно интересует, можно ли как то включить какое то уведомления, что оперативка почти заполнена?
while :;do if [[ "$(free | awk '$1=="Mem:"{print $2-$3}')" < $[1*1024*1024] ]];then notify-send 'Палундра' "Приближается пушистый северный зверёк";fi;sleep 1;done
Но время от времени браузеры слишком зажираются, и чтоб все не висло наглухо приходится страховать файлом подкачки.
В скрипте bash я создаю переменную которая вытаскивает из этой строки S4BZJ045 следующим образом:
SystemName=$(cat server_out.db | grep 'SystemName' | awk '{print $2}' )
SystemName=$(awk '/SystemName/{printf $2}' server_out.db)
В ответ получаю NotOK, я понимаю, что проблема в лишних символах в переменной SystemName. Проверял через WC:
mpv --input-ipc-server=/tmp/mpvsocket "https://www.youtube.com/watch?v=GYE2P7BWBAs"
echo '{ "command": ["set_property", "pause", true] }' | socat - /tmp/mpvsocket
echo '{ "command": ["set_property", "pause", false] }' | socat - /tmp/mpvsocket
echo "cycle pause" | socat - /tmp/mpvsocket
while [[ "$1" =~ ^- && ! "$1" == "--" ]]; do case $1 in
-V | --version )
echo $version
exit
;;
-s | --string )
shift; string=$1
;;
-f | --flag )
flag=1
;;
esac; shift; done
if [[ "$1" == '--' ]]; then shift; fi
Как с помощью awk вставить # в строчку 647?
awk -i inplace 'NR==647{print "# "$0}NR!=647' a.txt
Может ли процессор повредиться из-за перегрева?
Маловероятно, что процессор будет поврежден из-за перегрева, поскольку в нем применяются соответствующие меры безопасности. Процессоры имеют два режима тепловой защиты, регулировки мощности и автоматического выключения. Когда ядро превышает установленную температуру для дросселирования, снижается мощность для поддержания безопасного уровня температуры. Предельные температуры могут отличаться для различных процессоров и настроек BIOS. Если процессор не может поддерживать безопасную рабочую температуру посредством дросселирования, он автоматически отключается, чтобы предотвратить необратимое повреждение.