Если имена файлов Y перечислены в a list
файл, простая комбинация xargs
и cat
достаточно:
xargs cat <list >>concatenation_of_files
В случае Вы были осторожны, и Вы перечислили файлы один на строку (для предотвращения проблем с пробелами в именах файлов), затем просто добавьте a -d
опция разделителя:
xargs -d'\n' cat <list >>concatenation_of_files
(Это принимает concatenation_of_files
является первоначально несуществующим или пустым).
# is there a way to persist this through working enviornments besides this?
declare -x WORKING=`cat ~/.working`
Возможно, использование:
export WORKING=$(cat ~/.working)
Это должно добавить его к Вашей среде до перезагрузки.
Необходимо смочь сослаться на это позже при помощи
echo $WORKING
от подсказки.
Для переменного постоянства Вам нужен механизм, это не оперативная память. Файлы являются хорошим выбором. Здесь я использую ярлык удара для $(cat filename)
declare -x WORKING=$(< ~/.working)
Вы не должны echo $(pwd)
, просто pwd
function pp { pwd > ~/.working; }
"Близко объем", я принимаю Вас, означает, сохраняют локальные переменные локальными для функции: используйте local
встроенный
function p {
local OPTIND OPTARG
local optstring=':fd' # declare other options here: see "help getopts"
local has_f=false has_d=false
while getopts $optstring option; do
case $option in
f) has_f=true ;;
d) has_d=true ;;
?) echo "invalid option: -$OPTARG"; return 1 ;;
esac
done
shift $((OPTIND - 1))
if $has_f ; then
do something if -f
elif $has_d ; then
do something if -d
fi
# ... whatever else you have to do ...
}
export WORKING=$HOME/.working
в Ваш~/.bashrc
– sparticvs 03.11.2012, 20:45