Якщо це сценарій, просто зателефонуйте як сценарій
bash scriptname.sh
Не потрібно змінювати посилання взагалі.
Для складеного виконуваного файлу ви можете піти chroot route:
mkdir rootfs
cp -a /usr rootfs/
cp -a /lib rootfs/
cp -a /lib64 rootfs/
cp /bin/bash rootfs/bin/sh
cp yourprogram rootfs/
sudo chroot rootfs sh
А потім запустіть свою програму або sudo chroot rootfs /yourprogram
Однак на практиці немає причин, чому ви не можете використовувати його /bin/bashяк символьне посилання /bin/sh. Насправді, до версії 6.10 Ubuntu використовував /bin/bashяк /bin/sh, а потім вони перейшли через /bin/shнабагато швидшу, більш швидку реалізацію POSIX /bin/sh(тобто він дотримується стандарту POSIX для того, як повинні поводитись утиліти та ОС ОС, схожі на Unix, і реалізовувати деякі їх внутрішні ресурси) і через причини переносимості. Я настійно рекомендую прочитати відповідь Гілла , а також історичні записки про те, як /bin/dashвиникло. Що стосується сумісності, то сценарії, написані для dashвикористання POSIX-функцій, працюватимуть із bashоболонкою за замовчуванням. Зазвичай проблеми викликають навпаки -bashмає функції, які не потрібні /bin/sh, як-от <<<синтаксис або масиви.
Крім того, відповідна команда, ймовірно, написана з урахуванням RHEL або CentOS, яка використовує /bin/bashяк симпосилання до /bin/sh, пропонує дві речі: вони, ймовірно, орієнтовані на конкретну ОС і не дотримуються принципів POSIX. У цьому випадку також було б непогано перевірити, що ще вимагає команда, оскільки якщо це дійсно написано з іншою ОС, ви можете зіткнутися з більшими проблемами, ніж просто повторне посилання /bin/sh.