我正在尝试转换安装脚本以使用install
命令,而不是创建文件并对其运行chmod +x
。这是现在的脚本:
#!/usr/bin/env bash
install_target=/usr/local/bin/my_prog
volatile_path=/this/path/could/change
cat << EOF > "$install_target"
#!/usr/bin/env bash
"$volatile_path/some_other_executable" "\$@"
EOF
chmod +x "$install_target"
我更喜欢做的事情是:
#!/usr/bin/env bash
install_target=/usr/local/bin/my_prog
volatile_path=/this/path/could/change
install "$install_target" << EOF
#!/usr/bin/env bash
"$volatile_path/some_other_executable" "\$@"
EOF
我缺少什么让这项工作?
答案 0 :(得分:1)
根据评论,并假设您正在使用BSD版本的安装(GNU install
有完整的帮助显示install --help
而BSD只显示基本用法)我认为这就是你想要的要做的事:
#!/usr/bin/env bash
install_target=/usr/local/bin/my_prog
volatile_path=/this/path/could/change
temp_file=/tmp/$0.$$.$RANDOM
cat << EOF > "$temp_file"
#!/usr/bin/env bash
"$volatile_path/some_other_executable" "\$@"
EOF
install -bd "$temp_file" "$install_target"
rm -f "$temp_file"