Автор Гілка: змінні в баш  (Прочитано 2335 раз)

Відсутній pvl

  • Новачок
  • *
  • дописів: 39
  • Карма: +0/-0
змінні в баш
« : 2009-01-27 18:46:40 »
товариство, хто знає, чи можна в баш отримати значення змінної, використавши значення іншої змінної, як ім’я першої змінної?

наприклад:
aa=1
bb=aa
echo ${$bb}
тільки це не працює ;(

тільки для чисел буде працювати $[bb]

Михайло Даниленко

  • Гість
Re: змінні в баш
« Відповідей #1 : 2009-01-27 18:55:40 »
${!bb}

Відсутній pvl

  • Новачок
  • *
  • дописів: 39
  • Карма: +0/-0
Re: змінні в баш
« Відповідей #2 : 2009-01-27 19:04:42 »
ууууууу Великий Білий Шаман ;)
дякую

Відсутній piktor

  • Видавець
  • *******
  • дописів: 3396
  • Карма: +0/-0
Re: змінні в баш
« Відповідей #3 : 2009-01-27 22:41:14 »
Off-topic:
ууууууу Великий Білий Шаман ;)
Великий Кукурузо  :)
Всим, хто тоне й не знає,
За що вхопитись,
Хто вже з останніх
Вибився сил:
Попереджаю - я не колода,
Попереджаю - я крокодил.

Відсутній noddeat

  • Кореспондент
  • ***
  • дописів: 197
  • Карма: +0/-0
Re: змінні в баш
« Відповідей #4 : 2009-01-28 17:18:33 »
щоб не створювати через дрібниці нову тему, поможіть перекласти з csh на bash:

set file    = `pwd`
set file    = $file:t
себто в результаті змінна file повинна містити назву поточного каталогу (якщо pwd==/home/noddeat, то file=noddeat, відповідно).

перший рядок зрозуміло:
file=`pwd`
а далі що зробити?
Filenames are infinite in length, where infinity is set to to 255 characters. Peter Collinson, "The Unix File System"

Михайло Даниленко

  • Гість
Re: змінні в баш
« Відповідей #5 : 2009-01-28 17:26:48 »
file="${PWD##*/}"
Для / буде пустий рядок.

Відсутній raven

  • Новачок
  • *
  • дописів: 0
  • Карма: +0/-0
  • linux kettle
Re: змінні в баш
« Відповідей #6 : 2009-01-28 18:28:41 »
себто в результаті змінна file повинна містити назву поточного каталогу (якщо pwd==/home/noddeat, то file=noddeat, відповідно).
file=`pwd | sed 's%/*/[^/]*$%%'` , нє?

Відсутній raven

  • Новачок
  • *
  • дописів: 0
  • Карма: +0/-0
  • linux kettle
Re: змінні в баш
« Відповідей #7 : 2009-01-28 18:31:40 »
себто в результаті змінна file повинна містити назву поточного каталогу (якщо pwd==/home/noddeat, то file=noddeat, відповідно).
file=`pwd | sed 's%/*/[^/]*$%%'` , нє?
А, нє, то я не зрозумів. Забули, мені пора додому.

Відсутній noddeat

  • Кореспондент
  • ***
  • дописів: 197
  • Карма: +0/-0
Re: змінні в баш
« Відповідей #8 : 2009-01-28 20:03:27 »
file="${PWD##*/}"
Для / буде пустий рядок.
воно! дякую.
Filenames are infinite in length, where infinity is set to to 255 characters. Peter Collinson, "The Unix File System"