命令行里可以直接写sh代码吗

是的,你可以直接在命令行中执行 sh(Shell)代码。实际上,当你在命令行输入和执行命令时,你已经在运行 shell 脚本了。以下是一些基本的使用示例:

基本示例

直接执行命令

可以在终端直接输入单个命令:

echo "Hello, world!"
多个命令

可以使用分号(;)将多个命令组合成一行:

echo "Hello, world!"; echo "This is shell scripting."
使用子 Shell

你可以在子 shell 中运行一组命令,这通常用于限制变量作用域:

(
  echo "This is within a subshell."
  VAR="Subshell variable"
  echo $VAR
)
echo "Back to the main shell."

条件语句

可以在命令行使用条件语句:

if [ -f /etc/passwd ]; then echo "File exists"; else echo "File does not exist"; fi

循环

可以在命令行使用循环:

for i in 1 2 3; do echo "Number $i"; done

函数

可以在命令行定义并调用函数:

my_function() {
  echo "This is a function"
  echo "Parameter: $1"
}
my_function "Hello"

组合复杂脚本

如果你有一组复杂的脚本命令,可以将它们放在一个脚本文件中,然后运行这个脚本。例如:

  1. 创建脚本文件 my_script.sh

    #!/bin/sh
    echo "This is a shell script"
    for i in 1 2 3; do
      echo "Number $i"
    done
    
  2. 赋予脚本执行权限:

    chmod +x my_script.sh
    
  3. 执行脚本:

    ./my_script.sh
    

在 Shell中执行业务逻辑

特定情境下,比如处理 Android 中的 Swap,可以将多条命令组合成一个脚本并在命令行执行:

#!/bin/sh

# 检查是否具有 root 权限
if [ "$(id -u)" -ne 0 ]; then
  echo "请以 root 身份运行此脚本"
  exit 1
fi

# 挂载系统分区为可写
mount -o remount,rw /system

# 关闭所有 Swap
swapoff -a

# 创建关闭 Swap 的脚本文件
echo -e "#!/system/bin/sh\nswapoff -a" > /system/etc/init.d/99noswap

# 设置脚本文件的执行权限
chmod 755 /system/etc/init.d/99noswap

echo "Swap 已禁用并配置为开机时禁用"

这段代码可以保存为一个脚本文件,例如 disable_swap.sh,然后通过 adb shell 在 Android 上执行:

adb push disable_swap.sh /data/local/tmp/
adb shell "su -c 'sh /data/local/tmp/disable_swap.sh'"

请确保每一步都理解并按需调整,以便适应你的具体场景。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值