Прошу помочь с оптимизацией данного скрипта.
#!/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'"
При запуске через Cron всегда в $RESULT пусто.
Почему?
RESULT=$(/usr/local/bin/wp core verify-checksums --allow-root --path=/var/www/web/ 2>&1 )
IS_OK=$?
if [ $IS_OK == 0 ]; then
она ничего не находит, так как вторая переменная раскрывается с одинарными кавычками '.pdf'
-x
к #!/bin/bash
чтобы шелл писал, что собирается выполнять, чтобы понять в чём дело. Подозреваю, что какие-нибудь смешные опции в .bashrc/.bash_profile $find /var/www/test -type f ! -regex ".*\(edit\|200x200\).*" -name "*.jpg" -o -name "*.png"
Как быть?
find /var/www/test -type f ! -regex ".*\(edit\|200x200\).*" \( -name "*.jpg" -o -name "*.png" \)
Если не использовать регулярное выражение, то работает:
$find /var/www/test -type f ! -name "*.jpg" -o -name "*.png"
if [ -s file.txt ] then echo "File is empty"
-s FILE
FILE exists and has a size greater than zero
if [ -f file.txt -a ! -s file.txt ]
как экранировать одинарные кавычки
grep -rnw /home/user/ -e "\$_GET['s']"
$
в регулярке -- это конец строки, квадратные скобки -- это символ из набора... cmd1 | cmd2 | cmd3
В данном примере все три команды делят между собой ресурсы одного ядра процессора.
cmd2 | cmd3
.