Я хочу установить номер определенного процесса, который выполняется в переменной. Первая строка приведенного ниже сценария csh является проблемой, так как она устанавливает переменную "число" как ps aux | grep -c fiji вместо вывода ps aux | grep -c fiji который должен быть 1.

#!/bin/csh

set number = 'ps aux | grep -c fiji'

if ( $number <= 1 ) then
(I run a command here)
else
echo $number
endif

2 ответа2

1

Вы должны использовать backtics (`), а не одинарные кавычки ('). Этот скрипт

#!/bin/csh

set number = `ps aux | grep -c fiji`

echo $number

печатает 1

0

Общее замечание: ваша команда всегда будет возвращать 1 или более, включая процесс, который вы запускаете для grep. Поэтому вам нужно позаботиться об этом после оценки или использовать что-то вроде pgrep.

А потом - чш. Посмотрите на http://www.faqs.org/faqs/unix-faq/shell/csh-whynot/ . И http://www.grymoire.com/Unix/CshTop10.txt .

все еще хотите использовать csh ;-)?

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .