Це помилка, яку я отримую, і вона провалюється через змінну, значення якої повинно бути 2 (я отримую це за допомогою a select * from tabel
). У цій змінній я отримую пробіли.
+ 0 !=
2
./setjobs[19]: 0: not found.
Як видалити всі ці пробіли чи новий рядок із цієї змінної? Може tr
, sed
чи що-небудь допомогти?
Це те, що я роблю:
set_jobs_count=$(echo "set heading off;
select count(*) from oppar_db
where ( oppar_db_job_name, oppar_db_job_rec ) in ($var) ;" | \
sqlplus -s ${OP_ORA_USER}/${OP_ORA_PASS}@$OPERATIONAL_DB_NAME)
Це працює, як було запропоновано:
| sed 's/[[:space:]]//g'
Але я все одно отримую таке значення, як:
set_jobs_count=
2
1
Ви можете передати рядок до int у операторі select. Як це зробити, залежить від бази даних, Sybase, Oracle, MySQL тощо
—
bsd
як мені це зробити, у мене є оракул 9i
—
1212
з використанням СЕД це
—
BSD
| sed 's/[[:space:]]//g'
руйнуватися пробільні
подяка працює певною мірою, але все-таки значення змінної приходять так
—
1212
set_jobs_count= 2
Залежно від оболонки, ви можете це зробити без будь-яких зовнішніх інструментів. Дивіться stackoverflow.com/a/3352015/587717
—
Edd Steel