Size: a a a

2021 May 24

зк

захар который... in pro.bash
Что не так?
Гугл говорит, что пробелы в именах виноваты, но, во-первых, в именах файлов, которые я копирую, пробелов нет, во-вторых, пробовал в фигурные скобки переменные брать, всё равно та же самая ошибка
источник

Лс

Лень с Самосознанием... in pro.bash
Если не нравятся if-ы, есть запись

[ ... ] && {
    ...
}
источник

Лс

Лень с Самосознанием... in pro.bash
Ну как минимум имеет смысл явно указать цель, флаг -t у cp (уточни в мануале)
источник

Лс

Лень с Самосознанием... in pro.bash
А как выглядит $file?
источник

Лс

Лень с Самосознанием... in pro.bash
И зачем дважды проверять наличие переменной dirs, можно ж всегда её задавать
источник

зк

захар который... in pro.bash
Не знаю.  Скрипт нашёл в сети.
Думал, что $file то же самое, что и $1, поскольку переменная нигде не была задана.

Сейчас попробовал подставить $1 — ошибка сохраняется
источник

Лс

Лень с Самосознанием... in pro.bash
Покажи весь скрипт
источник

зк

захар который... in pro.bash
источник

Лс

Лень с Самосознанием... in pro.bash
Это ж твоё?
У тебя ппременная file выглядит как d /path/file что ли?
Естественно оно не работает
источник

B

BraVo123 in pro.bash
ну как ни где не была задана, вот же while read file читает с консоли ..
источник

зк

захар который... in pro.bash
Не, не моё это
источник

зк

захар который... in pro.bash
А, так вот что значит эта конструкция!

Теперь работает.  Файлы копируются, но в консоль пишут вот это:

/home/user/.config/sxiv/exec/key-handler: 63: /home/user/.config/sxiv/exec/key-handler: noextname: not found

Это что значит?
источник

зк

захар который... in pro.bash
На работоспособность не влияет, но интересно, с чем связано
источник

B

BraVo123 in pro.bash
ну видимо это -
#  Key handler for sxiv, the idea is to use the mark binding built in and then make and action
# you need noextname script which is on my github, otherwise just use basename
источник

зк

захар который... in pro.bash
Аааа!  Уже почти понятно!  Спасибо!
источник

зк

захар который... in pro.bash
Нашёл этот скрипт на его ГитХабе, но не пойму, что он делает

#!/bin/bash

# Get the names right

for fullpath in "$@"
do
   # Strip longest match of */ from start
   filename="${fullpath##*/}"        

   # Substring from 0 thru pos of filename
   dir="${fullpath:0:${#fullpath} - ${#filename}}"  

   # Strip shortest match of . plus at least one non-dot char from end
   base="${filename%.[^.]*}"        

   # Substring from len of base thru end
   ext="${filename:${#base} + 1}"      
   
   # If we have an extension and no base, it's really the base
   if [[ -z "$base" && -n "$ext" ]]; then    
   
       base=".$ext"
       ext=""
   fi

   #echo -e "$fullpath:\n\tdir  = \"$dir\"\n\tbase = \"$base\"\n\text  = \"$ext\""
  # echo "$ext"
done

case "$1" in
 -f) echo "$fullpath"  ;;
 -d) echo "$dir"    ;;
 -b) echo "$base"  ;;
  *) echo "$ext"    ;;
esac
источник

зк

захар который... in pro.bash
И где следует указать путь на него?  Вместо слова «noextname» в теле стартового скрипта?
источник

зк

захар который... in pro.bash
Ааа, это, наверное, на случай, если имена с пробелами или кириллицей?
источник

B

BraVo123 in pro.bash
видимо положить его там же где и вызывающий скрипт лежит ..
источник

зк

захар который... in pro.bash
Сделал следующим образом.  Положил рядом с исходным скриптом и прописал так:

BASEDIR="$(dirname "$0")"
noextname="$("$BASEDIR/noextname")"

Ошибка «noextname not found» пропала, но теперь пишет:

noextname: Permission denied

Права на запуск прописал.  Но всё равно ругается
источник