Поясню на одном примере.Это что-то приемлемое:
a=getAnum(randomize(10*(34)))
И вот что вы сделали:
a=getAnum(randomize)10*(34)()
Ваши кавычки выступают в качестве скобок во второй строке кода.Вот почему мы обычно используем одинарные кавычки, когда хотим вложить что-то между двойными кавычками в большинстве языков программирования, например: «Я съел« пиццу »и« тунец »». Чтобы получить строку: I ate 'pizza' and 'tuna'
Однаков оболочке двойные кавычки и одинарные кавычки очень разные.Двойные кавычки позволяют вам иметь переменные между ними, в то время как одиночные берут все между и используют это буквально так, чтобы специальные символы интерпретировались как обычный текст.
В вашем случае я бы просто полностью убрал кавычки, когда не обязательночто это например:
cd "$(dirname "$1")"
становится так:
cd $(dirname "$1")
или вот это:
cd $(dirname $1)
однако это:
cd '$(dirname $1)'
Или это:
cd $(dirname '$1')
не будет работать.Было бы взять все между одинарными кавычками и интерпретировать это как текст.Таким образом, в первом случае он попытается ввести каталог с именем $ (dirname $ 1) , а во втором имени он будет запускать dirname $ 1 .