Windows shift equivalent in Linux
Shifts positional parameters ($1, $2...) left by one. Used to process command-line arguments in scripts.
shift
shift
shift
shift
Overview
What this command does
On Windows, "shift" is used to shift script argument positions. On Linux, the closest practical mapping shown here is "shift". Shifts positional parameters ($1, $2...) left by one. Used to process command-line arguments in scripts. This reference is grouped under Terminal & Shell Scripting → Terminal.
Windows → Linux context
What changes when you use this on Linux?
Same name, different environment
The basic command name shift is familiar on both platforms, but Linux path rules, quoting, permissions and available options can still change the result.
Portable across the compared distros
The Debian/Ubuntu, Fedora and Arch rows use the same command in this mapping. Package availability or defaults can still vary, so check the installed tool version when an option behaves differently.
For the broader concept behind this mapping, read Linux command-line basics.
Practical tasks
Common use cases
Shift script argument positions
Shifts positional parameters ($1, $2...) left by one. Used to process command-line arguments in scripts.
$1 $2 $3
Positional arguments
$@
All arguments as separate words
$#
Number of arguments
Ready to run
Copyable Linux commands
Review paths, device names, package names and permissions before running any command.
echo "All args: $@"
echo "Count: $#"
echo "First: $1"
while [ $# -gt 0 ]; do
echo "Arg: $1"
shift
done
Walkthrough
Examples with explanations
#!/bin/bash
# Script: myscript.sh arg1 arg2 arg3
echo "All args: $@"
echo "Count: $#"
echo "First: $1"
# Process all args one by one:
while [ $# -gt 0 ]; do
echo "Arg: $1"
shift
done
Reference
Common options and variations
| Command or option | Use |
|---|---|
$1 $2 $3 | Positional arguments |
$@ | All arguments as separate words |
$# | Number of arguments |
shift | Remove $1 and shift remaining down |
shift 2 | Shift by 2 positions |
Distro differences
Debian/Ubuntu vs Fedora vs Arch
Debian/Ubuntu, Fedora and Arch all use "shift" for this mapping. The command syntax shown here is portable across the three rows, although installed versions and system defaults can still vary.
| Distribution | Package manager / base | Equivalent command | Difference to notice |
|---|---|---|---|
| Debian/Ubuntu | same command | shift |
Same command on this distribution. |
| Fedora | same command | shift |
Same command on this distribution. |
| Arch | same command | shift |
Same command on this distribution. |
Keep learning