This is a silly program that blinks the green and red LEDs lights on Rasberry Pi 3 models (probably works for RPI 4 too). It is written in perl, but frankly, you don't need anything more than shell commands.

#!/usr/bin/env perl use strict; use warnings; # https://www.raspberrypi.org/forums/viewtopic.php?p=136266#p136266 main(); sub main { if ( $> != 0 ) { die( "Must run as root\n" ); } unset_led0_mode(); unset_led1_mode(); for ( 1 .. 3 ) { led0_on(); print STDOUT "on\n"; led1_off(); sleep 1; led0_off(); led1_on(); print STDOUT "off\n"; sleep 2; } reset_default_led0_mode(); reset_default_led1_mode(); } sub set_led_trigger_mode { my ( $led, $mode ) = @_; $led //= 'led0'; do { local $|; open( my $out, '>', '/sys/class/leds/$led/trigger' ) || warn( $! ); select $out; $|++; print $out $mode; close $out; }; } sub unset_led0_mode { set_led_trigger_mode( 'led0', 'none' ); } sub unset_led1_mode { set_led_trigger_mode( 'led1', 'node' ); } sub reset_default_led0_mode { set_led_trigger_mode( 'led0', 'mmc0' ); } sub reset_default_led1_mode { set_led_trigger_mode( 'led1', 'default-on' ); } sub change_led { my ( $led, $state ) = @_; $led //= 'led0'; $state = $state ? 1 : 0; do { local $|; open( my $out, '>', '/sys/class/leds/$led/brightness' ) || warn( $! ); select $out; $|++; printf $out "%d\n", $state; close $out; }; } sub led0_on { change_led( 'led0', 1 ); } sub led0_off { change_led( 'led0', 0 ); } sub led1_on { change_led( 'led1', 1 ); } sub led1_off { change_led( 'led1', 0 ); }