![交叉编译内核模块的别名](https://linux22.com/image/12303/%E4%BA%A4%E5%8F%89%E7%BC%96%E8%AF%91%E5%86%85%E6%A0%B8%E6%A8%A1%E5%9D%97%E7%9A%84%E5%88%AB%E5%90%8D.png)
我为交叉编译编写了一个别名。
alias cross_compile="make CROSS_COMPILE=x86_64-buildroot-linux-uclibc- -C /home/jamal//buildroot-2019.05/output/build/linux-4.19.16 M='$PWD' modules"
但每次我从终端调用 cross_compile 时,PWD 都不会被评估,它被设置为静态目录。
我如何确保每次调用 cross_compile 时都会获取密码。
答案1
您需要将所有单引号反转为双引号,并将所有双引号反转为单引号。这会推迟 PWD 的扩展,直到调用别名为止。缩短的示例:
Paul-) alias cross_compile='echo linux-4.19.16 M="${PWD}" modules'
Paul-)
Paul-) alias cross_compile
alias cross_compile='echo linux-4.19.16 M="${PWD}" modules'
Paul-)
Paul-) cross_compile
linux-4.19.16 M=/home/paul modules
Paul-)
Paul-) cd Sand*
Paul-) pwd
/home/paul/SandBox
Paul-) cross_compile
linux-4.19.16 M=/home/paul/SandBox modules
Paul-)