2015-04-14 2 views
0

В команде diff появляется следующая ошибка. Просьба помочь, как я могу указать, я хочу, чтобы увидеть разницу в двух файлах:diff commnad не работает «отсутствующий операнд после` diff »

#current_unavail=ranjith 

[email protected] tmp]# cat /tmp/ran 
ranjith 
[[email protected] tmp]# 

#test=$(cat /tmp/ran) 

[[email protected] tmp]# diff `$current_unavail` `$test` 
diff: missing operand after `diff' 
diff: Try `diff --help' for more information. 
[[email protected] tmp]# 
+4

Укажите свои переменные. '$ current_unavail', казалось бы, имеет пробелы в имени файла (или это не имя, которое вы ожидаете от него). –

+0

[корень @ iitmserver1 unavail_cn] # кошка /tmp/unavail_cn.out iitmc07n24-IB0 Unavail [корень @ iitmserver1 unavail_cn] # current_unavail = $ (кот /tmp/unavail_cn.out) – ranjith

+1

'$ current_unavail' является * содержимое * текущего файла? Это не сработает. Также кажется, что у него есть место (обновить сообщение вместо того, чтобы помещать вещи в комментарии, чтобы вы могли их отформатировать). Вот почему вам нужно процитировать вашу переменную, но этого недостаточно, потому что diff принимает * файлы * в качестве аргументов. –

ответ

1

diff принимает два имена файлов в качестве аргументов, где, как представляется, проездом в файле содержимое в качестве первого аргумента. Вы хотите изменить свой сценарий/команды выглядеть как:

current_unavail=/tmp/unavail_cn.out 
result=$(diff $current_unavail /moes/home/pharthiphan/scripts/monitoring/unavail_cn/$last_unavail) 

В качестве альтернативы, вы можете использовать Process Substitution передать вывод команды в другую команду, которая ожидает файл. например:

diff <(echo -e "foo\nbar") <(echo -e "foo\nbaz") 

Однако, хотя это полезно знать, это может показаться излишним уровнем сложности для вашей текущей проблемы.

+0

[root @ iitmserver1 ~] # result = $ (diff <(echo -e $ current_unavail) <(echo -e/moes/home/pharthiphan/scripts/monitoring/unavail_cn/$ last_unavail)) [root @ iitmserver1 ~] # echo $ result 1c1 < --- >/moes/home/pharthiphan/scripts/monitoring/unavail_cn/nodes_20150415_101602 [root @ iitmserver1 ~] # зависит от этого o/p, который следует за #, если [$? -eq 0]; всегда производят 1 o/p .. означает, что разница есть. любезно рассмотрите наши сценарии выше. любезно помочь. – ranjith

Смежные вопросы