О сохранении значения выражения в программировании оболочки - PullRequest
0 голосов
/ 27 марта 2020

Я просто так боролся за эту простую грамматику. Я узнал в тексте; Для сохранения значения в программировании оболочки мы используем value=$(expression). Поэтому я сделал следующий скрипт

#!/bin/bash
address=$1
echo $address
value=$(test -d $address)
echo $value

Это скрипт, чтобы найти, если мой вход (каталог) существует и доступен.

Адрес показывает мне ввод, но $value ничего не показывает.

По крайней мере, я ожидал 0 или ненулевое значение, но это не так!

Кто-нибудь может научить меня, как сохранить результат теста?

1 Ответ

0 голосов
/ 27 марта 2020

test не имеет выходных данных, но результат последней команды сохраняется как $?, поэтому вы можете либо -

value=$(test -d $address; echo $?)

, либо просто пропустить его и использовать тест.

if [ -d "$address" ]
then ...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...