Как вызвать функцию в другой переменной, которая имеет обратную косую черту в Shell Script - PullRequest
0 голосов
/ 06 февраля 2019

Я хочу вызвать функцию в другой переменной, которая имеет обратную галочку.как мне сделать эту работу?

пример:

location ()
{echo "home/$1/dir"}

count_files ()
{
count=`ls $(location user1) |wc -l` 
}

count_files

Ответы [ 2 ]

0 голосов
/ 06 февраля 2019

Вы должны установить правильный синтаксис выполнения.

$(Command)

или с обратными галочками

`Command`

В вашем примере вы пропустили этот команду ls ....И вам не хватает первой косой черты в вашем домашнем каталоге (в противном случае он будет работать только из корневого каталога /).

Попробуйте:

#!/bin/bash

location () {
  echo "/home/$1/dir"
}

count_files () {

  # Get the count;
  count=$(ls $(location "$1") | wc -l);

  # Return the count value;
  echo "$count";
}

# Call function and print the count result. 
# Better you set the user here and not 'hardcoded' in a function.
echo $(count_files "user1")
0 голосов
/ 06 февраля 2019

Вы можете использовать это:

location() {
   echo "home/$1/dir"
}

count_files() {
   count=$(ls $(location user1) | wc -l)
}

count_files
...