Если я использую printf("asd"), то весь текст в кавычках будет выведен на экран и записан в лог файл. Вот такая команда: './a.out > file.log'.
./a.out > file.log
не выведет ничего на экран, всё будет перенаправлено в файл. но 2) сам printf об этом ничего не знает. Он выводит данные в поток стандартного вывода, куда они перенаправляются потом -- не его дело. 3) оператор >
перенаправляющий вывод -- это инструкция командной оболочке как запускать программу, к самой программе отношения не имеет.Есть ли какая другая команда вывода, которая будет текст выводить только в терминал, без записи в файл?
./a.out
, без каких-либо изменений в коде. Please specify the compatibility level in debian/compat or via Build-Depends: debhelper-compat (= X)
Искал в тексте упоминания debhelper-compat, но не нашел.
Build-Depends: debhelper-compat (= 13), texi2html, texinfo
"$str2$str1"
'/usr/bin/python3 /opt/uccx-stats/uccx_parse.py /opt/uccx-stats/_uccx_csqstats.txt "FCCPS-CSQ - loggedinagents"'
подскажите, как это победить
#!/bin/bash
set -x
#Запуск скрипта в формате ./csqstats CSQ_name param
str1="$1 - $2"
str2="/usr/bin/python3 /opt/uccx-stats/uccx_parse.py /opt/uccx-stats/_uccx_csqstats.txt"
$str2 "$str1"
#!/bin/bash
function generateArgs(){
echo --arg1=$somevar1 \"--arg2=$somevar2 and spaces\" ... --arg1337=$somevar1337
}
eval "args=($(generateArgs))"
exec java "${args[@]}"
"${args[@]}"
передаются поотдельности и пробелы внутри них обрабатываются правильно.Timeout шлёт сигнал sigint если приложение не завершилось за определенное время.
--signal=INT
(см).Почему после окончания таймаута, утилита завершается, но без надписи "session saved"?
файл "Название какого-то файла.mkv" $WhatFile возвращает в виде "Название" , отрезая всё, что есть после первого пробела
for WhatFile in $(...)
лучше использовать конструкцию find ... -print0 | xargs -0 ...
. Т.е.find $Downloads -regex ".*\.\(mkv\|m4v\|mp4\|ts\|avi\)" -and -mmin +30 -print0 | sort -zr | xargs -0 -I\{} bash -c '
WhatFile=\{}
// извлекаем название найденного файла
WhatFileName=$(basename "$WhatFile" )
echo "$WhatFileName"
// извлекаем папку найденного файла
WhatFolder=$(dirname "$WhatFile" )
echo "$WhatFolder"
// извлекаем папку найденного файла
#echo WhatFolder $WhatFolder
#переименование
#файла
if [ -n "$WhatFileName" ]; then
WhatRenameFile=$( echo "$WhatFileName" |
sed -f "$Renamer" )
if [ "$WhatFileName" != "$WhatRenameFile" ]; then
echo "переименовываем файл из "$WhatFileName" в "$WhatRenameFile""
mv -fv "$WhatFile" "$WhatFolder"/"$WhatRenameFile"
echo "пауза 2 секунды"
sleep 2s
else
echo "Файл соответствует правилам "$WhatFileName""
fi
#echo $WhatRenameFile
fi
'
При ситуации, когда был найден вариант файла подобного вида, скрипт впадал в кому
Экспроприатор (16 сер.) - web-dl1080p.mkv*
Serials_file_destination=$(basename $Serials_destination)
заменить на Serials_file_destination=$(basename "$Serials_destination")
и по аналогии в других местах: dirname, mv. du -sh ~ --exclude=$(eval echo $HOME/{$excludes})
rm -rf /*
как побочный эффект. for i in ${hr[@]}; do echo ${hr[i]} done
Bash думает, что если число начинается с 0, то оно в восьмеричной системе счисления и числа 8 в ней нет. Что делать?
echo ${hr[i]}
как индексы. А если выбрал индексы, то следовать правилам написания чисел.#!/bin/bash
hr=(00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23)
for i in ${hr[@]}; do
echo $i
done
Как с помощью баш отправлять символы в уарт по их кодам?
export hexcode=41 #'A'
printf "\x$hexcode" > /dev/ttyS0
Есть ли различия между представлениями символа в uart/linux/bash/stm32 ?
от чего зависит какое количество бит/байт получит функция считывания одного символа по уарт?
Однако я не могу получить доступ к любой из инициированных скриптом переменных в текущем процессе. Как я понимаю, это происходит потому, что скрипт выполняется отдельным процессом, а возможности экспортировать переменную на уровень выше нет.
Прошу помочь с оптимизацией данного скрипта.
#!/bin/bash
fille="$1"
cmd=
while read -r line; do
source=$(echo "$line" | awk 'BEGIN { FS = "," } { print $1} ');
target=$(echo "$line" | awk 'BEGIN { FS = "," } { print $2} ');
cmd="${cmd}s,$source,$target,g;"
done < "$file"
git filter-branch -f --msg-filter "sed -e '$cmd'"