[guest@localhost tmp]$ touch file{1,2,3}.txt
[guest@localhost tmp]$
[guest@localhost tmp]$ ls file*.txt
file1.txt file2.txt file3.txt
[guest@localhost tmp]$ ls file*.txt | sed 's%\([^.]*\)\(\.txt\)%mv & \1_save\2%'
mv file1.txt file1_save.txt
mv file2.txt file2_save.txt
mv file3.txt file3_save.txt
[guest@localhost tmp]$ ls file*.txt | sed 's%\([^.]*\)\(\.txt\)%mv & \1_save\2%' | sh
[guest@localhost tmp]$ ls file*.txt
file1_save.txt file2_save.txt file3_save.txt
[guest@localhost tmp]$
Как правильно следить за ходом выполнения работы и поддерживать запуск с предыдущего удачно выполненного этапа, в случае некорректно завершения текущего?
{ script1.sh && echo "script1 - ok"; } || echo "script1 - fail"
{ script2.sh && echo "script2 - ok"; } || echo "script2 - fail"
{ script3.sh && echo "script3 - ok"; } || echo "script3 - fail"
{ echo x1 && echo "script1 - ok"; } || echo "script1 - fail"
{ cat x && echo "script2 - ok"; } || echo "script2 - fail"
{ echo x2 && echo "script3 - ok"; } || echo "script3 - fail"
{ touch /x && echo "script4 - ok"; } || echo "script4 - fail"
[guest@localhost ~]$ { echo x1 && echo "script1 - ok"; } || echo "script1 - fail"
x1
script1 - ok
[guest@localhost ~]$ { cat x && echo "script2 - ok"; } || echo "script2 - fail"
cat: x: Нет такого файла или каталога
script2 - fail
[guest@localhost ~]$ { echo x2 && echo "script3 - ok"; } || echo "script3 - fail"
x2
script3 - ok
[guest@localhost ~]$ { touch /x && echo "script4 - ok"; } || echo "script4 - fail"
touch: невозможно выполнить touch для «/x»: Отказано в доступе
script4 - fail
[guest@localhost ~]$
{ script1.sh && echo "script1 - ok"; } || { echo "script1 - fail"; exit 1; }
{ script2.sh && echo "script2 - ok"; } || { echo "script2 - fail"; exit 1; }
1. Если директива и файл это просто inode с разным флагом внутри него, тогда откуда VFS или ядро знает что условно в папке /etc/ лежат всякие файлы(другие inodes) - это я пока не понял, не могу найти ни каких внутренних ссылок между собой файлов и директорий ?!
Где вообще этот жуткий "/" хранится?
Что за команда "`"(гравис) в командной оболочке bash?
man bash
Command Substitution
Command substitution allows the output of a command to replace the com‐
mand name. There are two forms:
$(command)
or
`command`
Bash performs the expansion by executing command and replacing the com‐
mand substitution with the standard output of the command, with any
trailing newlines deleted.
blockport_except_localhost()
{
iptables -A INPUT ! -s localhost -p tcp --dport "$1" -j DROP
iptables -A INPUT ! -s localhost -p udp --dport "$1" -j DROP
iptables -A OUTPUT ! -d localhost -p tcp --sport "$1" -j DROP
iptables -A OUTPUT ! -d localhost -p udp --sport "$1" -j DROP
}
blockport_except_localhost 80
Что делает цикл for в данной функции bash?
digit=${num:$t:1} #????
[guest@localhost ~]$ s=abcd
[guest@localhost ~]$ echo "${s:0:3} ${s:0:2} ${s:2:1}"
abc ab c
[guest@localhost ~]$