Определите переменную bash для оценки каждый раз, когда она используется

попробуйте с этим.

import java.io.File;

public class MakingDirectory {
 public static void main(String[] args) {
      String s="d:\\msreddy\\sample1";
      File file=new File(s);
      file.mkdirs();
}
}

для получения дополнительной информации см. this.

1
задан Benjamin W. 16 January 2019 в 21:21
поделиться

2 ответа

Если у вас Bash 4.4 или новее, вы можете (ab) использовать расширение параметра ${parameter@P} , которое расширяет parameter так, как если бы это была строка приглашения: [ 116]

$ A='/home/userA'
$ B='$A/my_file'      # Single quotes to suppress expansion
$ echo "${B@P}"
/home/userA/my_file
$ A='/other/path'
$ echo "${B@P}"
/other/path/my_file

Однако, как указано в комментариях, гораздо проще и удобнее использовать функцию вместо:

$ appendfile() { printf '%s/%s\n' "$1" 'my_file'; }
$ A='/home/user'
$ B=$(appendfile "$A")
$ echo "$B"
/home/user/my_file
$ A='/other/path'
$ B=$(appendfile "$A")
$ echo "$B"
/other/path/my_file
0
ответ дан Benjamin W. 16 January 2019 в 21:21
поделиться

Нет. Вместо этого используйте простую и надежную функцию:

b() {
  echo "$a/my_file"
}

a="/home/userA"
echo "b outputs $(b)"

a="/foo/bar"
echo "b outputs $(b)"

Результат:

b outputs /home/userA/my_file
b outputs /foo/bar/my_file

Тем не менее, вот один уродливый способ борьбы с системой, дословно выполняя вашу цель:

# Trigger a re-assignment after every single command
trap 'b="$a/my_file"' DEBUG

a="/home/userA"
echo "b is $b"

a="/foo/bar"
echo "b is $b"

Результат:

b is /home/userA/my_file
b is /foo/bar/my_file
0
ответ дан that other guy 16 January 2019 в 21:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: